experimental cmake support for linux

release/4.3a0
Yong-Dian Jian 2011-05-09 16:53:08 +00:00
parent fe126f2e42
commit 85ff7853eb
10 changed files with 369 additions and 0 deletions

46
CMakeLists.txt Normal file
View File

@ -0,0 +1,46 @@
CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
PROJECT (gtsam)
if (NOT CMAKE_INSTALL_PREFIX)
set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR} CACHE INTERNAL "" FORCE)
endif()
set(CMAKE_CXX_FLAGS "-O2 -g -Wall -march=core2 -msse2 -DNDEBUG -DGT_USE_CBLAS -DGT_USE_LAPACK")
INCLUDE_DIRECTORIES ("${CMAKE_SOURCE_DIR}")
set(BOOST_ROOT ${BOOST_ROOT} CACHE PATH "The boost root path")
INCLUDE_DIRECTORIES ("${BOOST_ROOT}")
LINK_DIRECTORIES ("${BOOST_ROOT}/stage/lib")
set(CCOLAMD_ROOT ${CCOLAMD_ROOT} CACHE PATH "The ccolamd root path")
INCLUDE_DIRECTORIES ("${CCOLAMD_ROOT}")
LINK_DIRECTORIES ("${CCOLAMD_ROOT}")
set(libs_support ${libs_support} ccolamd)
set(USE_GOTOBLAS2 ${USE_GOTOBLAS2} CACHE BOOL "USE GotoBlas2 or not")
if (USE_GOTOBLAS2)
set(GOTOBLAS2_ROOT ${GOTOBLAS2_ROOT} CACHE PATH "The gotoblas2 root path")
INCLUDE_DIRECTORIES ("${GOTOBLAS2_ROOT}")
set(libs_support ${libs_support} goto2)
else ()
set(libs_support ${libs_support} cblas lapack atlas)
endif ()
set(BUILD_EXAMPLES TRUE CACHE BOOL "Turn on the flag to build examples")
set(BUILD_TESTS TRUE CACHE BOOL "Turn on the flag to build tests")
set(BUILD_TIMINGS TRUE CACHE BOOL "Turn on the flag to build timings")
enable_testing()
add_subdirectory(CppUnitLite)
add_subdirectory(gtsam)
set(libs_gtsam base geometry inference linear nonlinear slam)
add_subdirectory(examples)
add_subdirectory(tests)

View File

@ -0,0 +1,15 @@
CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
SET(lib_target "CppUnitLite")
FILE(GLOB cppunitlite_src "./*.cpp")
############################# COMPILE LIBRARY
ADD_LIBRARY(${lib_target} STATIC ${cppunitlite_src})
#TARGET_LINK_LIBRARIES(${lib_target})
############################# INSTALL
#message(STATUS "install ${lib_target} to ${CMAKE_SOURCE_DIR}/lib")
#install(TARGETS ${lib_target}
# ARCHIVE DESTINATION lib COMPONENT dev
# LIBRARY DESTINATION lib COMPONENT dev)

20
examples/CMakeLists.txt Normal file
View File

@ -0,0 +1,20 @@
CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
set(libs_support ${libs_support} CppUnitLite ${libs_gtsam})
if (BUILD_EXAMPLES)
set(PROGRAMS "")
set(PROGRAMS "${PROGRAMS};SimpleRotation")
set(PROGRAMS "${PROGRAMS};PlanarSLAMExample_easy")
set(PROGRAMS "${PROGRAMS};PlanarSLAMSelfContained_advanced")
set(PROGRAMS "${PROGRAMS};Pose2SLAMExample_easy")
set(PROGRAMS "${PROGRAMS};Pose2SLAMExample_advanced")
# set(PROGRAMS "${PROGRAMS};Pose2SLAMwSPCG_easy")
# set(PROGRAMS "${PROGRAMS};Pose2SLAMwSPCG_advanced")
foreach(program ${PROGRAMS})
add_executable(${program} "${program}.cpp")
target_link_libraries(${program} ${libs_support})
endforeach(program)
endif ()

12
gtsam/CMakeLists.txt Normal file
View File

@ -0,0 +1,12 @@
CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
set(lib_target "gtsam")
add_subdirectory(base)
add_subdirectory(geometry)
add_subdirectory(inference)
add_subdirectory(linear)
add_subdirectory(nonlinear)
add_subdirectory(slam)
#add_library(${lib_target} base geometry inference linear nonlinear slam)

54
gtsam/base/CMakeLists.txt Normal file
View File

@ -0,0 +1,54 @@
CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
SET(lib_target "base")
FILE(GLOB base_src "./*.cpp")
############################# COMPILE LIBRARY
ADD_LIBRARY(${lib_target} STATIC ${base_src})
#TARGET_LINK_LIBRARIES(${lib_target})
############################# INSTALL
#message(STATUS "install ${lib_target} to ${CMAKE_SOURCE_DIR}/lib")
#install(TARGETS ${lib_target}
# ARCHIVE DESTINATION lib COMPONENT dev
#LIBRARY DESTINATION lib COMPONENT dev)
# TESTS
set(libs_support ${libs_support} CppUnitLite)
if (BUILD_TESTS)
set(PROGRAMS "")
set(PROGRAMS "${PROGRAMS};testBTree")
set(PROGRAMS "${PROGRAMS};testCholesky")
set(PROGRAMS "${PROGRAMS};testDebug")
set(PROGRAMS "${PROGRAMS};testDenseQRUtil")
set(PROGRAMS "${PROGRAMS};testDSFVector")
set(PROGRAMS "${PROGRAMS};testFixedVector")
set(PROGRAMS "${PROGRAMS};testLieScalar")
set(PROGRAMS "${PROGRAMS};testLieVector")
set(PROGRAMS "${PROGRAMS};testMatrix")
set(PROGRAMS "${PROGRAMS};testNumericalDerivative")
set(PROGRAMS "${PROGRAMS};testTestableAssertions")
set(PROGRAMS "${PROGRAMS};testVector")
foreach(program ${PROGRAMS})
add_executable(${program} "tests/${program}.cpp")
target_link_libraries(${program} ${lib_target} ${libs_support})
add_test(${program} ${program})
endforeach(program)
endif ()
if (BUILD_TIMINGS)
set(PROGRAMS "")
set(PROGRAMS "${PROGRAMS};timeMatrix")
set(PROGRAMS "${PROGRAMS};timeublas")
set(PROGRAMS "${PROGRAMS};timeTest")
set(PROGRAMS "${PROGRAMS};timeVirtual")
foreach(program ${PROGRAMS})
add_executable(${program} "tests/${program}.cpp")
target_link_libraries(${program} ${lib_target} ${libs_support})
endforeach(program)
endif ()

View File

@ -0,0 +1,47 @@
CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
set (lib_target "geometry")
file (GLOB geometry_src "./*.cpp")
############################# COMPILE LIBRARY
add_library (${lib_target} STATIC ${geometry_src})
target_link_libraries (${lib_target} base)
# TESTS
set(libs_support ${libs_support} CppUnitLite)
if (BUILD_TESTS)
set(PROGRAMS "")
set(PROGRAMS "${PROGRAMS};testCal3Bundler")
set(PROGRAMS "${PROGRAMS};testCal3DS2")
set(PROGRAMS "${PROGRAMS};testCal3_S2")
set(PROGRAMS "${PROGRAMS};testCalibratedCamera")
set(PROGRAMS "${PROGRAMS};testFundamental")
set(PROGRAMS "${PROGRAMS};testHomography2")
set(PROGRAMS "${PROGRAMS};testPoint2")
set(PROGRAMS "${PROGRAMS};testPoint3")
set(PROGRAMS "${PROGRAMS};testRot2")
set(PROGRAMS "${PROGRAMS};testRot3")
set(PROGRAMS "${PROGRAMS};testSimpleCamera")
set(PROGRAMS "${PROGRAMS};testStereoCamera")
set(PROGRAMS "${PROGRAMS};testTensors")
foreach(program ${PROGRAMS})
add_executable(${program} "tests/${program}.cpp")
target_link_libraries(${program} ${lib_target} ${libs_support})
add_test(${program} ${program})
endforeach(program)
endif ()
if (BUILD_TIMINGS)
set(PROGRAMS "")
set(PROGRAMS "${PROGRAMS};timeCalibratedCamera")
set(PROGRAMS "${PROGRAMS};timeRot3")
foreach(program ${PROGRAMS})
add_executable(${program} "tests/${program}.cpp")
target_link_libraries(${program} ${lib_target} ${libs_support})
endforeach(program)
endif ()

View File

@ -0,0 +1,48 @@
CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
set (lib_target "inference")
file (GLOB inference_src "./*.cpp")
############################# COMPILE LIBRARY
add_library (${lib_target} STATIC ${inference_src})
target_link_libraries (${lib_target} base geometry ccolamd)
# TESTS
set(libs_support ${libs_support} CppUnitLite)
if (BUILD_TESTS)
set(PROGRAMS "")
set(PROGRAMS "${PROGRAMS};testBayesTree")
# set(PROGRAMS "${PROGRAMS};testBinaryBayesNet")
set(PROGRAMS "${PROGRAMS};testClusterTree")
set(PROGRAMS "${PROGRAMS};testConditional")
set(PROGRAMS "${PROGRAMS};testEliminationTree")
set(PROGRAMS "${PROGRAMS};testFactorGraph")
set(PROGRAMS "${PROGRAMS};testInference")
set(PROGRAMS "${PROGRAMS};testISAM")
set(PROGRAMS "${PROGRAMS};testJunctionTree")
set(PROGRAMS "${PROGRAMS};testSymbolicBayesNet")
set(PROGRAMS "${PROGRAMS};testSymbolicFactor")
set(PROGRAMS "${PROGRAMS};testSymbolicFactorGraph")
set(PROGRAMS "${PROGRAMS};testVariableIndex")
set(PROGRAMS "${PROGRAMS};testVariableSlots")
foreach(program ${PROGRAMS})
add_executable(${program} "tests/${program}.cpp")
target_link_libraries(${program} ${lib_target} ${libs_support})
add_test(${program} ${program})
endforeach(program)
endif ()
if (BUILD_TIMINGS)
set(PROGRAMS "")
# set(PROGRAMS "${PROGRAMS};timeSymbolMaps")
foreach(program ${PROGRAMS})
add_executable(${program} "tests/${program}.cpp")
target_link_libraries(${program} ${lib_target} ${libs_support})
endforeach(program)
endif ()

View File

@ -0,0 +1,49 @@
CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
set (lib_target "linear")
#file (GLOB linear_src "./*.cpp")
set (linear_src NoiseModel.cpp Errors.cpp Sampler.cpp GaussianSequentialSolver.cpp GaussianMultifrontalSolver.cpp
JacobianFactor.cpp HessianFactor.cpp GaussianFactor.cpp GaussianFactorGraph.cpp
GaussianJunctionTree.cpp GaussianConditional.cpp GaussianBayesNet.cpp GaussianISAM.cpp)
############################# COMPILE LIBRARY
add_library (${lib_target} STATIC ${linear_src})
target_link_libraries(${lib_target} base inference ccolamd)
# TESTS
set(libs_support ${libs_support} CppUnitLite)
if (BUILD_TESTS)
set(PROGRAMS "")
# set(PROGRAMS "${PROGRAMS};testBayesNetPreconditioner")
set(PROGRAMS "${PROGRAMS};testErrors")
set(PROGRAMS "${PROGRAMS};testGaussianConditional")
set(PROGRAMS "${PROGRAMS};testGaussianFactor")
set(PROGRAMS "${PROGRAMS};testGaussianFactorGraph")
set(PROGRAMS "${PROGRAMS};testGaussianJunctionTree")
set(PROGRAMS "${PROGRAMS};testHessianFactor")
set(PROGRAMS "${PROGRAMS};testNoiseModel")
set(PROGRAMS "${PROGRAMS};testSampler")
# set(PROGRAMS "${PROGRAMS};testVectorBTree")
# set(PROGRAMS "${PROGRAMS};testVectorMap")
set(PROGRAMS "${PROGRAMS};testVectorValues")
foreach(program ${PROGRAMS})
add_executable(${program} "tests/${program}.cpp")
target_link_libraries(${program} ${lib_target} ${libs_support})
add_test(${program} ${program})
endforeach(program)
endif ()
if (BUILD_TIMINGS)
set(PROGRAMS "")
set(PROGRAMS "${PROGRAMS};timeFactorOverhead")
set(PROGRAMS "${PROGRAMS};timeGaussianFactor")
set(PROGRAMS "${PROGRAMS};timeSLAMlike")
# set(PROGRAMS "${PROGRAMS};timeVectorValues")
foreach(program ${PROGRAMS})
add_executable(${program} "tests/${program}.cpp")
target_link_libraries(${program} ${lib_target} ${libs_support})
endforeach(program)
endif ()

View File

@ -0,0 +1,32 @@
CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
set (lib_target "nonlinear")
file (GLOB nonlinear_src "./*.cpp")
############################# COMPILE LIBRARY
add_library (${lib_target} STATIC ${nonlinear_src})
# TESTS
set(libs_support ${libs_support} CppUnitLite base)
if (BUILD_TESTS)
set(PROGRAMS "")
set(PROGRAMS "${PROGRAMS};testKey")
set(PROGRAMS "${PROGRAMS};testLieValues")
set(PROGRAMS "${PROGRAMS};testOrdering")
foreach(program ${PROGRAMS})
add_executable(${program} "tests/${program}.cpp")
target_link_libraries(${program} ${lib_target} ${libs_support})
add_test(${program} ${program})
endforeach(program)
endif ()
if (BUILD_TIMINGS)
set(PROGRAMS "")
foreach(program ${PROGRAMS})
add_executable(${program} "tests/${program}.cpp")
target_link_libraries(${program} ${lib_target} ${libs_support})
endforeach(program)
endif ()

46
tests/CMakeLists.txt Normal file
View File

@ -0,0 +1,46 @@
CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
# TESTS
set(libs_support ${libs_support} CppUnitLite ${libs_gtsam})
if (BUILD_TESTS)
set(PROGRAMS "")
set(PROGRAMS "${PROGRAMS};testGaussianBayesNet")
set(PROGRAMS "${PROGRAMS};testGaussianFactor")
set(PROGRAMS "${PROGRAMS};testGaussianFactorGraph")
set(PROGRAMS "${PROGRAMS};testGaussianISAM")
set(PROGRAMS "${PROGRAMS};testGraph")
set(PROGRAMS "${PROGRAMS};testInference")
set(PROGRAMS "${PROGRAMS};testGaussianJunctionTree")
set(PROGRAMS "${PROGRAMS};testNonlinearEquality")
set(PROGRAMS "${PROGRAMS};testNonlinearFactor")
set(PROGRAMS "${PROGRAMS};testNonlinearFactorGraph")
set(PROGRAMS "${PROGRAMS};testNonlinearOptimizer")
set(PROGRAMS "${PROGRAMS};testSymbolicBayesNet")
set(PROGRAMS "${PROGRAMS};testSymbolicFactorGraph")
set(PROGRAMS "${PROGRAMS};testTupleValues")
set(PROGRAMS "${PROGRAMS};testNonlinearISAM")
foreach(program ${PROGRAMS})
set (program_exe "${program}-global")
add_executable(${program_exe} "${program}.cpp")
target_link_libraries(${program_exe} ${lib_target} ${libs_support})
add_test(${program_exe} ${program_exe})
endforeach(program)
endif ()
#check_PROGRAMS += testSerialization
if (BUILD_TIMINGS)
set(PROGRAMS "")
set(PROGRAMS "${PROGRAMS};timeGaussianFactorGraph")
set(PROGRAMS "${PROGRAMS};timeSequentialOnDataset")
set(PROGRAMS "${PROGRAMS};timeMultifrontalOnDataset")
foreach(program ${PROGRAMS})
set (program_exe "${program}-global")
add_executable(${program_exe} "${program}.cpp")
target_link_libraries(${program_exe} ${lib_target} ${libs_support})
endforeach(program)
endif ()