diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 185faf686713f4948908a1b42d00f1cb88a9416b..c313ca6da5f533fd9431fac8833eb88f1c5e3e8e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -27,9 +27,10 @@ build-img: image: $CI_REGISTRY_IMAGE:latest needs: ['build-img'] script: + - GIT_SHA=$(git rev-parse HEAD) - conan create . exa/stable -s compiler=${COMPILER} -s compiler.version=${CVERSION} -s compiler.libcxx=${LIBCXX} - conan remote add ${REPO} ${CI_API_V4_URL}/projects/$CI_PROJECT_ID/packages/conan - - conan upload csg-eb/2021.10.27@exa/stable --all --remote=${REPO} + - conan upload csg-eb/${GIT_SHA}@exa/stable --all --remote=${REPO} tags: - docker diff --git a/CMakeLists.txt b/CMakeLists.txt index 0970362f04f00d909321d39f002a18b427f7f03a..8ee27b4669b7534829676512001dda8f55cbd992 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,7 +18,6 @@ else() conan_cmake_autodetect(settings) endif() - find_program(CONAN_FOUND conan) if(NOT CONAN_FOUND) message(WARNING " @@ -35,26 +34,47 @@ conan_cmake_configure(REQUIRES conan_cmake_install(PATH_OR_REFERENCE ${CMAKE_CURRENT_BINARY_DIR}/conanfile.txt BUILD missing SETTINGS ${settings}) +list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR}) +find_package(Catch2 REQUIRED) -conan_cmake_configure(REQUIRES - csg-eb/2021.10.27@exa/stable - GENERATORS cmake_find_package) +execute_process( + COMMAND git rev-parse HEAD + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + OUTPUT_VARIABLE CSGEB_SHA + ERROR_VARIABLE err + ) + +if(err) + message(WARNING "Failed to retrieve CSG-EB Git commit") +else() + string(STRIP ${CSGEB_SHA} CSGEB_SHA) + message(STATUS "CSG-EB commit: ${CSGEB_SHA}" ) +endif() -conan_add_remote( - NAME mfix-gitlab - INDEX 1 - URL https://mfix.netl.doe.gov/gitlab/api/v4/projects/232/packages/conan - VERIFY_SSL True -) +if (USE_GITLAB_PACKAGE) + conan_cmake_configure(REQUIRES + csg-eb/${CSGEB_SHA}@exa/stable + GENERATORS cmake_find_package) -conan_cmake_install(PATH_OR_REFERENCE ${CMAKE_CURRENT_BINARY_DIR}/conanfile.txt - BUILD missing - SETTINGS ${settings}) + conan_add_remote( + NAME mfix-gitlab + INDEX 1 + URL https://mfix.netl.doe.gov/gitlab/api/v4/projects/232/packages/conan + VERIFY_SSL True + ) +else() + execute_process( + COMMAND ${CONAN_CMD} create --build=missing ${CMAKE_CURRENT_SOURCE_DIR} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMAND_ERROR_IS_FATAL ANY + ) + conan_cmake_configure(REQUIRES + csg-eb/${CSGEB_SHA} + GENERATORS cmake_find_package) + conan_cmake_install(PATH_OR_REFERENCE ${CMAKE_CURRENT_BINARY_DIR}/conanfile.txt + BUILD missing + SETTINGS ${settings}) +endif() list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR}) -list(APPEND CMAKE_PREFIX_PATH ${CMAKE_CURRENT_BINARY_DIR}) -list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}) -list(APPEND CMAKE_PREFIX_PATH ${CMAKE_CURRENT_SOURCE_DIR}) - -find_package(Catch2 REQUIRED) find_package(csg-eb REQUIRED) diff --git a/conanfile.py b/conanfile.py index 928b3f260390c4d882ff203cdbbf2de95fc28ab9..2679c4ef84074f498e999b647e821b8303cebe77 100644 --- a/conanfile.py +++ b/conanfile.py @@ -1,12 +1,10 @@ -import shutil import sys -from conans import ConanFile, Meson +from conans import ConanFile, Meson, tools class CsgEbConan(ConanFile): name = "csg-eb" - version = "2021.10.27" license = "" author = "Deepak Rangarajan " url = "https://mfix.netl.doe.gov/gitlab/exa/csg-eb" @@ -20,6 +18,10 @@ class CsgEbConan(ConanFile): build_requires = ("meson/0.60.0", "pkgconf/1.7.4", "ninja/1.10.2") exports_sources = "meson.build", "include/*", "src/*" + def set_version(self): + git = tools.Git(folder=self.recipe_folder) + self.version = git.get_revision() + def build(self): meson = Meson(self) args = ["-Dcpp_std=vc++latest"] if sys.platform in ("win32", "cygwin") else []