base works

release/4.3a0
Alex Cunningham 2012-01-31 05:27:50 +00:00
parent 64c49bc431
commit d8de7ce62c
4 changed files with 67 additions and 83 deletions

View File

@ -1656,6 +1656,30 @@
<useDefaultCommand>true</useDefaultCommand> <useDefaultCommand>true</useDefaultCommand>
<runAllBuilders>true</runAllBuilders> <runAllBuilders>true</runAllBuilders>
</target> </target>
<target name="check.base" path="build_cmake" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
<buildCommand>make</buildCommand>
<buildArguments>-j2</buildArguments>
<buildTarget>check.base</buildTarget>
<stopOnError>true</stopOnError>
<useDefaultCommand>true</useDefaultCommand>
<runAllBuilders>true</runAllBuilders>
</target>
<target name="timing.base" path="build_cmake" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
<buildCommand>make</buildCommand>
<buildArguments>-j2</buildArguments>
<buildTarget>timing.base</buildTarget>
<stopOnError>true</stopOnError>
<useDefaultCommand>true</useDefaultCommand>
<runAllBuilders>true</runAllBuilders>
</target>
<target name="base" path="build_cmake" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
<buildCommand>make</buildCommand>
<buildArguments>-j2</buildArguments>
<buildTarget>base</buildTarget>
<stopOnError>true</stopOnError>
<useDefaultCommand>true</useDefaultCommand>
<runAllBuilders>true</runAllBuilders>
</target>
<target name="tests/testDSFVector.run" path="build/gtsam/base" targetID="org.eclipse.cdt.build.MakeTargetBuilder"> <target name="tests/testDSFVector.run" path="build/gtsam/base" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
<buildCommand>make</buildCommand> <buildCommand>make</buildCommand>
<buildArguments>-j2</buildArguments> <buildArguments>-j2</buildArguments>

View File

@ -64,10 +64,10 @@ add_subdirectory(gtsam)
add_subdirectory(CppUnitLite) add_subdirectory(CppUnitLite)
# Build Tests # Build Tests
add_subdirectory(tests) #add_subdirectory(tests)
# Build wrap # Build wrap
add_subdirectory(wrap) #add_subdirectory(wrap)
# Build examples # Build examples
add_subdirectory(examples) #add_subdirectory(examples)

View File

@ -3,14 +3,20 @@
set (gtsam_subdirs set (gtsam_subdirs
3rdparty 3rdparty
base base
geometry # geometry
inference # inference
linear # linear
nonlinear # nonlinear
slam) # slam
)
foreach(subdir ${gtsam_subdirs}) foreach(subdir ${gtsam_subdirs})
# Build local library and tests
add_subdirectory(${subdir}) add_subdirectory(${subdir})
# link subfolder check to main check
add_dependencies(check check.${subdir})
add_dependencies(timing timing.${subdir})
endforeach(subdir) endforeach(subdir)
#set (ccolamd_srcs #set (ccolamd_srcs

View File

@ -1,80 +1,34 @@
# Build full gtsam library as a single library # Build convenience libraries
# and also build tests file(GLOB base_srcs "*.cpp")
set (gtsam_subdirs add_library(base STATIC ${base_srcs})
base
geometry
inference
linear
nonlinear
slam)
set (ccolamd_srcs # Install headers
3rdparty/CCOLAMD/Source/ccolamd.c file(GLOB base_headers "*.h")
3rdparty/CCOLAMD/Source/ccolamd_global.c install(FILES ${base_headers} DESTINATION include/gtsam/base)
3rdparty/UFconfig/UFconfig.c)
# install headers from 3rdparty libraries add_custom_target(check.base)
add_subdirectory(3rdparty) add_custom_target(timing.base)
# Accumulate gtsam_srcs # Build tests
set(gtsam_srcs ${ccolamd_srcs}) file(GLOB base_tests_srcs "tests/test*.cpp")
foreach(test_src ${base_tests_srcs})
get_filename_component(test_base ${test_src} NAME_WE)
set( test_bin base_${test_base} )
add_executable(${test_bin} EXCLUDE_FROM_ALL ${test_src})
add_dependencies(check.base ${test_bin})
add_test(${test_base} ${EXECUTABLE_OUTPUT_PATH}${test_bin})
target_link_libraries(${test_bin} CppUnitLite base)
add_custom_target(${test_bin}.run ${EXECUTABLE_OUTPUT_PATH}${test_bin} ${ARGN})
endforeach(test_src)
# Get all sources and headers from each subdirectory # Build timing scripts
foreach(subdir ${gtsam_subdirs}) file(GLOB base_tests_srcs "tests/time*.cpp")
message(STATUS "Building ${subdir}") foreach(time_src ${time_srcs})
file(GLOB sub_gtsam_srcs "${subdir}/*.cpp") get_filename_component(time_base ${time_src} NAME_WE)
list(APPEND gtsam_srcs ${sub_gtsam_srcs}) set( time_bin ${time_base} )
add_executable(${time_bin} EXCLUDE_FROM_ALL ${time_src})
# install headers add_dependencies(timing.base ${time_bin})
file(GLOB sub_gtsam_headers "${subdir}/*.h") target_link_libraries(${time_bin} CppUnitLite base)
install(FILES ${sub_gtsam_headers} DESTINATION include/gtsam/${subdir}) add_custom_target(${time_base}.run ${EXECUTABLE_OUTPUT_PATH}${time_bin} ${ARGN})
endforeach(subdir) endforeach(time_src)
# build shared and static versions of the library
add_library(${PROJECT_NAME}-static STATIC ${gtsam_srcs})
set_target_properties(${PROJECT_NAME}-static PROPERTIES OUTPUT_NAME "${PROJECT_NAME}")
set_target_properties(${PROJECT_NAME}-static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
set_target_properties(${PROJECT_NAME}-static PROPERTIES
VERSION "${GTSAM_VERSION_MAJOR}.${GTSAM_VERSION_MINOR}.${GTSAM_VERSION_PATCH}"
SOVERSION "${GTSAM_VERSION_MAJOR}.${GTSAM_VERSION_MINOR}.${GTSAM_VERSION_PATCH}"
)
install(TARGETS ${PROJECT_NAME}-static ARCHIVE DESTINATION lib)
add_library(${PROJECT_NAME}-shared SHARED ${gtsam_srcs})
set_target_properties(${PROJECT_NAME}-shared PROPERTIES OUTPUT_NAME "${PROJECT_NAME}")
set_target_properties(${PROJECT_NAME}-shared PROPERTIES CLEAN_DIRECT_OUTPUT 1)
set_target_properties(${PROJECT_NAME}-shared PROPERTIES
VERSION "${GTSAM_VERSION_MAJOR}.${GTSAM_VERSION_MINOR}.${GTSAM_VERSION_PATCH}"
SOVERSION "${GTSAM_VERSION_MAJOR}.${GTSAM_VERSION_MINOR}.${GTSAM_VERSION_PATCH}"
)
install(TARGETS ${PROJECT_NAME}-shared LIBRARY DESTINATION lib )
# Get all sources and headers from each
foreach(subdir ${gtsam_subdirs})
# Build tests
file(GLOB tests_srcs "${subdir}/tests/test*.cpp")
foreach(test_src ${tests_srcs})
get_filename_component(test_base ${test_src} NAME_WE)
set( test_bin ${subdir}_${test_base} )
add_executable(${test_bin} EXCLUDE_FROM_ALL ${test_src})
add_dependencies(${test_bin} ${PROJECT_NAME}-static)
add_dependencies(check ${test_bin})
add_test(${subdir}/${test_base} ${EXECUTABLE_OUTPUT_PATH}${test_bin})
target_link_libraries(${test_bin} CppUnitLite gtsam-static)
add_custom_target(${test_bin}.run ${EXECUTABLE_OUTPUT_PATH}${test_bin} ${ARGN})
endforeach(test_src)
# Build timing scripts
file(GLOB time_srcs "${subdir}/tests/time*.cpp")
foreach(time_src ${time_srcs})
get_filename_component(time_base ${time_src} NAME_WE)
set( time_bin ${time_base} )
add_executable(${time_bin} EXCLUDE_FROM_ALL ${time_src})
add_dependencies(${test_bin} ${PROJECT_NAME}-static)
add_dependencies(timing ${time_bin})
target_link_libraries(${time_bin} CppUnitLite gtsam-static)
add_custom_target(${time_base}.run ${EXECUTABLE_OUTPUT_PATH}${time_bin} ${ARGN})
endforeach(time_src)
endforeach(subdir)