diff options
Diffstat (limited to 'internal/ceres/CMakeLists.txt')
-rw-r--r-- | internal/ceres/CMakeLists.txt | 54 |
1 files changed, 20 insertions, 34 deletions
diff --git a/internal/ceres/CMakeLists.txt b/internal/ceres/CMakeLists.txt index 9e2e1ae..610e816 100644 --- a/internal/ceres/CMakeLists.txt +++ b/internal/ceres/CMakeLists.txt @@ -30,6 +30,7 @@ SET(CERES_INTERNAL_SRC array_utils.cc + blas.cc block_evaluate_preparer.cc block_jacobi_preconditioner.cc block_jacobian_writer.cc @@ -64,6 +65,7 @@ SET(CERES_INTERNAL_SRC incomplete_lq_factorization.cc iterative_schur_complement_solver.cc levenberg_marquardt_strategy.cc + lapack.cc line_search.cc line_search_direction.cc line_search_minimizer.cc @@ -130,20 +132,14 @@ ELSE (SCHUR_SPECIALIZATIONS) ENDIF (SCHUR_SPECIALIZATIONS) # For Android, use the internal Glog implementation. -IF (BUILD_ANDROID) - ADD_LIBRARY(miniglog STATIC - miniglog/glog/logging.cc) - - # The Android logging library that defines e.g. __android_log_print is - # creatively named "log". - TARGET_LINK_LIBRARIES(miniglog log) - +IF (MINIGLOG) + ADD_LIBRARY(miniglog STATIC miniglog/glog/logging.cc) INSTALL(TARGETS miniglog EXPORT CeresExport RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX}) -ENDIF (BUILD_ANDROID) +ENDIF (MINIGLOG) SET(CERES_LIBRARY_DEPENDENCIES ${GLOG_LIB}) @@ -166,18 +162,20 @@ IF (SUITESPARSE_FOUND) LIST(APPEND CERES_LIBRARY_DEPENDENCIES ${METIS_LIB}) ENDIF (EXISTS ${METIS_LIB}) - LIST(APPEND CERES_LIBRARY_DEPENDENCIES ${LAPACK_LIB}) - - IF (EXISTS ${BLAS_LIB}) - LIST(APPEND CERES_LIBRARY_DEPENDENCIES ${BLAS_LIB}) - ENDIF (EXISTS ${BLAS_LIB}) - IF (TBB_FOUND) LIST(APPEND CERES_LIBRARY_DEPENDENCIES ${TBB_LIB}) LIST(APPEND CERES_LIBRARY_DEPENDENCIES ${TBB_MALLOC_LIB}) ENDIF (TBB_FOUND) ENDIF (SUITESPARSE_FOUND) +IF (CXSPARSE_FOUND) + LIST(APPEND CERES_LIBRARY_DEPENDENCIES ${CXSPARSE_LIB}) +ENDIF (CXSPARSE_FOUND) + +IF (BLAS_AND_LAPACK_FOUND) + LIST(APPEND CERES_LIBRARY_DEPENDENCIES ${LAPACK_LIBRARIES}) + LIST(APPEND CERES_LIBRARY_DEPENDENCIES ${BLAS_LIBRARIES}) +ENDIF (BLAS_AND_LAPACK_FOUND) IF (CXSPARSE_FOUND) LIST(APPEND CERES_LIBRARY_DEPENDENCIES ${CXSPARSE_LIB}) @@ -194,7 +192,11 @@ SET(CERES_LIBRARY_SOURCE ${CERES_INTERNAL_HDRS} ${CERES_INTERNAL_SCHUR_FILES}) -ADD_LIBRARY(ceres STATIC ${CERES_LIBRARY_SOURCE}) +ADD_LIBRARY(ceres ${CERES_LIBRARY_SOURCE}) +SET_TARGET_PROPERTIES(ceres PROPERTIES + VERSION ${CERES_VERSION} + SOVERSION ${CERES_VERSION_MAJOR} +) TARGET_LINK_LIBRARIES(ceres ${CERES_LIBRARY_DEPENDENCIES}) INSTALL(TARGETS ceres @@ -203,23 +205,6 @@ INSTALL(TARGETS ceres LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX}) -# 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 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 - VERSION ${CERES_VERSION} - SOVERSION ${CERES_ABI_VERSION}) - - INSTALL(TARGETS ceres_shared - EXPORT CeresExport - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib${LIB_SUFFIX} - ARCHIVE DESTINATION lib${LIB_SUFFIX}) - -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) ADD_LIBRARY(test_util @@ -228,6 +213,7 @@ IF (BUILD_TESTING AND GFLAGS) test_util.cc) TARGET_LINK_LIBRARIES(gtest ${GFLAGS_LIB} ${GLOG_LIB}) + TARGET_LINK_LIBRARIES(test_util ceres gtest ${GLOG_LIB}) MACRO (CERES_TEST NAME) ADD_EXECUTABLE(${NAME}_test ${NAME}_test.cc) @@ -242,7 +228,6 @@ IF (BUILD_TESTING AND GFLAGS) CERES_TEST(autodiff) CERES_TEST(autodiff_cost_function) CERES_TEST(autodiff_local_parameterization) - CERES_TEST(blas) CERES_TEST(block_random_access_crs_matrix) CERES_TEST(block_random_access_dense_matrix) CERES_TEST(block_random_access_sparse_matrix) @@ -285,6 +270,7 @@ IF (BUILD_TESTING AND GFLAGS) CERES_TEST(runtime_numeric_diff_cost_function) CERES_TEST(schur_complement_solver) CERES_TEST(schur_eliminator) + CERES_TEST(small_blas) CERES_TEST(solver_impl) # TODO(sameeragarwal): This test should ultimately be made |