[buildcore] Fix conan to work in Docker devenv
This commit is contained in:
parent
0e73f75322
commit
56b4612487
26
deps/buildcore/base.mk
vendored
26
deps/buildcore/base.mk
vendored
@ -16,7 +16,15 @@ else
|
|||||||
HOST_ENV=${OS}-$(shell uname -m)
|
HOST_ENV=${OS}-$(shell uname -m)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(shell python -c 'import sys; print(sys.version_info[0])'),3)
|
DEVENV=devenv$(shell pwd | sed 's/\//-/g')
|
||||||
|
DEVENV_IMAGE=${PROJECT_NAME}-devenv
|
||||||
|
ifneq ($(shell which docker 2> /dev/null),)
|
||||||
|
ifeq ($(shell docker inspect --format="{{.State.Status}}" ${DEVENV} 2>&1),running)
|
||||||
|
ENV_RUN=docker exec -i -t --user $(shell id -u ${USER}) ${DEVENV}
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(shell ${ENV_RUN} python -c 'import sys; print(sys.version_info[0])'),3)
|
||||||
PYTHON3=python
|
PYTHON3=python
|
||||||
else
|
else
|
||||||
PYTHON3=python3
|
PYTHON3=python3
|
||||||
@ -44,13 +52,6 @@ else
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
VCPKG_DIR=$(VCPKG_DIR_BASE)/$(VCPKG_VERSION)-$(HOST_ENV)
|
VCPKG_DIR=$(VCPKG_DIR_BASE)/$(VCPKG_VERSION)-$(HOST_ENV)
|
||||||
DEVENV=devenv$(shell pwd | sed 's/\//-/g')
|
|
||||||
DEVENV_IMAGE=${PROJECT_NAME}-devenv
|
|
||||||
ifneq ($(shell which docker 2> /dev/null),)
|
|
||||||
ifeq ($(shell docker inspect --format="{{.State.Status}}" ${DEVENV} 2>&1),running)
|
|
||||||
ENV_RUN=docker exec -i -t --user $(shell id -u ${USER}) ${DEVENV}
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
CURRENT_BUILD=$(HOST_ENV)-$(shell ${PYBB} cat .current_build)
|
CURRENT_BUILD=$(HOST_ENV)-$(shell ${PYBB} cat .current_build)
|
||||||
|
|
||||||
.PHONY: build
|
.PHONY: build
|
||||||
@ -96,9 +97,11 @@ devenv-create:
|
|||||||
.PHONY: devenv-destroy
|
.PHONY: devenv-destroy
|
||||||
devenv-destroy:
|
devenv-destroy:
|
||||||
docker rm -f ${DEVENV}
|
docker rm -f ${DEVENV}
|
||||||
|
ifdef ENV_RUN
|
||||||
.PHONY: devenv-shell
|
.PHONY: devenv-shell
|
||||||
devenv-shell:
|
devenv-shell:
|
||||||
${ENV_RUN} bash
|
${ENV_RUN} bash
|
||||||
|
endif
|
||||||
|
|
||||||
ifdef USE_VCPKG
|
ifdef USE_VCPKG
|
||||||
|
|
||||||
@ -127,13 +130,14 @@ else # USE_VCPKG ################################################
|
|||||||
|
|
||||||
.PHONY: setup-conan
|
.PHONY: setup-conan
|
||||||
conan-config:
|
conan-config:
|
||||||
conan profile new ${PROJECT_NAME} --detect --force
|
${ENV_RUN} conan profile new ${PROJECT_NAME} --detect --force
|
||||||
ifeq ($(OS),linux)
|
ifeq ($(OS),linux)
|
||||||
conan profile update settings.compiler.libcxx=libstdc++11 ${PROJECT_NAME}
|
${ENV_RUN} conan profile update settings.compiler.libcxx=libstdc++11 ${PROJECT_NAME}
|
||||||
endif
|
endif
|
||||||
.PHONY: conan
|
.PHONY: conan
|
||||||
conan:
|
conan:
|
||||||
@mkdir -p .conanbuild && cd .conanbuild && conan install ../ --build=missing -pr=${PROJECT_NAME}
|
${ENV_RUN} ${PYBB} conan-install ${PROJECT_NAME}
|
||||||
|
#@mkdir -p .conanbuild && cd .conanbuild && conan install ../ --build=missing -pr=${PROJECT_NAME}
|
||||||
endif # USE_VCPKG ###############################################
|
endif # USE_VCPKG ###############################################
|
||||||
|
|
||||||
.PHONY: configure-xcode
|
.PHONY: configure-xcode
|
||||||
|
16
deps/buildcore/scripts/pybb.py
vendored
16
deps/buildcore/scripts/pybb.py
vendored
@ -74,6 +74,20 @@ def cmake_build(base_path: str, target: str) -> int:
|
|||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
def conan() -> int:
|
||||||
|
project_name = sys.argv[2]
|
||||||
|
conan_dir = '.conanbuild'
|
||||||
|
err = mkdir(conan_dir)
|
||||||
|
if err != 0:
|
||||||
|
return err
|
||||||
|
args = ['conan', 'install', '../', '--build=missing', '-pr', project_name]
|
||||||
|
os.chdir(conan_dir)
|
||||||
|
err = subprocess.run(args).returncode
|
||||||
|
if err != 0:
|
||||||
|
return err
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
err = 0
|
err = 0
|
||||||
if sys.argv[1] == 'mkdir':
|
if sys.argv[1] == 'mkdir':
|
||||||
@ -81,6 +95,8 @@ def main():
|
|||||||
elif sys.argv[1] == 'rm':
|
elif sys.argv[1] == 'rm':
|
||||||
for i in range(2, len(sys.argv)):
|
for i in range(2, len(sys.argv)):
|
||||||
rm(sys.argv[i])
|
rm(sys.argv[i])
|
||||||
|
elif sys.argv[1] == 'conan-install':
|
||||||
|
err = conan()
|
||||||
elif sys.argv[1] == 'ctest-all':
|
elif sys.argv[1] == 'ctest-all':
|
||||||
err = ctest_all()
|
err = ctest_all()
|
||||||
elif sys.argv[1] == 'cmake-build':
|
elif sys.argv[1] == 'cmake-build':
|
||||||
|
Loading…
Reference in New Issue
Block a user