From 7a99f8f27f7dd7fadd7e7729952eaa2e4424f6c9 Mon Sep 17 00:00:00 2001 From: Darby Payne Date: Tue, 10 Mar 2020 03:22:15 -0700 Subject: [PATCH] Adding static library option (#5397) --- CMakeLists.txt | 9 +++++++-- cmake/Utils.cmake | 5 +++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 348e7e69f..30ee45d0a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,6 +23,7 @@ set_default_configuration_release() #-- Options option(BUILD_C_DOC "Build documentation for C APIs using Doxygen." OFF) option(USE_OPENMP "Build with OpenMP support." ON) +option(BUILD_STATIC_LIB "Build static library" OFF) ## Bindings option(JVM_BINDINGS "Build JVM bindings" OFF) option(R_LIB "Build shared library for R package" OFF) @@ -133,8 +134,12 @@ add_subdirectory(${xgboost_SOURCE_DIR}/plugin) add_subdirectory(${xgboost_SOURCE_DIR}/src) set(XGBOOST_OBJ_SOURCES "${XGBOOST_OBJ_SOURCES};$") -#-- Shared library -add_library(xgboost SHARED ${XGBOOST_OBJ_SOURCES}) +#-- library +if (BUILD_STATIC_LIB) + add_library(xgboost STATIC ${XGBOOST_OBJ_SOURCES}) +else() + add_library(xgboost SHARED ${XGBOOST_OBJ_SOURCES}) +endif(BUILD_STATIC_LIB) target_include_directories(xgboost INTERFACE $ diff --git a/cmake/Utils.cmake b/cmake/Utils.cmake index 8efe19d2f..4a9e63a77 100644 --- a/cmake/Utils.cmake +++ b/cmake/Utils.cmake @@ -65,6 +65,11 @@ function(set_output_directory target dir) LIBRARY_OUTPUT_DIRECTORY_RELEASE ${dir} LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO ${dir} LIBRARY_OUTPUT_DIRECTORY_MINSIZEREL ${dir} + ARCHIVE_OUTPUT_DIRECTORY ${dir} + ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${dir} + ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${dir} + ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO ${dir} + ARCHIVE_OUTPUT_DIRECTORY_MINSIZEREL ${dir} ) endfunction(set_output_directory)