Add the ability to turn shared library compilation on and off Change-Id: Ib9eacfbc894bb2b66aafff3b930c63e2ad8a555e
diff --git a/CMakeLists.txt b/CMakeLists.txt index c4c89bc..7b65b03 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt
@@ -91,6 +91,10 @@ "Build for Android. Use build_android.sh instead of setting this." OFF) +OPTION(BUILD_SHARED + "Build a dynamically linkable version of Ceres Solver." + ON) + # To get a more static build, try the following line on Mac and Linux: # SET(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
diff --git a/internal/ceres/CMakeLists.txt b/internal/ceres/CMakeLists.txt index a7f1d97..9e2e1ae 100644 --- a/internal/ceres/CMakeLists.txt +++ b/internal/ceres/CMakeLists.txt
@@ -205,7 +205,7 @@ # Don't build a DLL on MSVC. Supporting Ceres as a DLL on Windows involves # nontrivial changes that we haven't made yet. -IF (NOT MSVC AND NOT BUILD_ANDROID) +IF (NOT MSVC AND NOT BUILD_ANDROID AND BUILD_SHARED) ADD_LIBRARY(ceres_shared SHARED ${CERES_LIBRARY_SOURCE}) TARGET_LINK_LIBRARIES(ceres_shared ${CERES_LIBRARY_DEPENDENCIES}) SET_TARGET_PROPERTIES(ceres_shared PROPERTIES @@ -218,7 +218,7 @@ LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX}) -ENDIF (NOT MSVC AND NOT BUILD_ANDROID) +ENDIF (NOT MSVC AND NOT BUILD_ANDROID AND BUILD_SHARED) IF (BUILD_TESTING AND GFLAGS) ADD_LIBRARY(gtest gmock_gtest_all.cc gmock_main.cc)