diff --git a/CMakeLists.txt b/CMakeLists.txt index dfdd491d5..538ee4790 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,6 +13,12 @@ if (CMAKE_COMPILER_IS_GNUCC AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0) message(FATAL_ERROR "GCC version must be at least 5.0!") endif() +message(STATUS "xgboost VERSION: ${xgboost_VERSION}") +set(XGBOOST_DEFINITIONS + ${XGBOOST_DEFINITIONS} + -DXGBOOST_VER_MAJOR=${xgboost_VERSION_MAJOR} + -DXGBOOST_VER_MINOR=${xgboost_VERSION_MINOR} + -DXGBOOST_VER_PATCH=${xgboost_VERSION_PATCH}) set_default_configuration_release() #-- Options diff --git a/R-package/CMakeLists.txt b/R-package/CMakeLists.txt index 35971bb6f..b11447251 100644 --- a/R-package/CMakeLists.txt +++ b/R-package/CMakeLists.txt @@ -29,6 +29,6 @@ set_target_properties( CXX_STANDARD_REQUIRED ON POSITION_INDEPENDENT_CODE ON) -set(XGBOOST_DEFINITIONS ${R_DEFINITIONS} PARENT_SCOPE) +set(XGBOOST_DEFINITIONS "${XGBOOST_DEFINITIONS};${R_DEFINITIONS}" PARENT_SCOPE) set(XGBOOST_OBJ_SOURCES $ PARENT_SCOPE) set(LINKED_LIBRARIES_PRIVATE ${LINKED_LIBRARIES_PRIVATE} ${LIBR_CORE_LIBRARY} PARENT_SCOPE) diff --git a/tests/cpp/test_learner.cc b/tests/cpp/test_learner.cc index ebd01a6f5..46d7bc738 100644 --- a/tests/cpp/test_learner.cc +++ b/tests/cpp/test_learner.cc @@ -17,6 +17,14 @@ TEST(Learner, Basic) { learner->SetParams(args); delete mat_ptr; + + auto major = XGBOOST_VER_MAJOR; + auto minor = XGBOOST_VER_MINOR; + auto patch = XGBOOST_VER_PATCH; + + static_assert(std::is_integral::value, "Wrong major version type"); + static_assert(std::is_integral::value, "Wrong minor version type"); + static_assert(std::is_integral::value, "Wrong patch version type"); } TEST(Learner, CheckGroup) {