| 
									
										
										
										
											2012-05-04 01:03:25 +08:00
										 |  |  | # Build full gtsam_unstable library as a single library
 | 
					
						
							|  |  |  | # and also build tests 
 | 
					
						
							|  |  |  | set (gtsam_unstable_subdirs | 
					
						
							|  |  |  |     base 
 | 
					
						
							| 
									
										
										
										
											2012-08-03 04:47:16 +08:00
										 |  |  |     geometry
 | 
					
						
							| 
									
										
										
										
											2012-06-15 04:00:51 +08:00
										 |  |  |     discrete
 | 
					
						
							| 
									
										
										
										
											2013-03-24 04:19:36 +08:00
										 |  |  |     linear 
 | 
					
						
							| 
									
										
										
										
											2012-05-04 01:03:25 +08:00
										 |  |  |     dynamics
 | 
					
						
							| 
									
										
										
										
											2013-02-20 05:37:17 +08:00
										 |  |  |     nonlinear
 | 
					
						
							| 
									
										
										
										
											2012-06-15 04:00:51 +08:00
										 |  |  |     slam
 | 
					
						
							| 
									
										
										
										
											2012-05-04 01:03:25 +08:00
										 |  |  | )
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-02-05 05:28:39 +08:00
										 |  |  | set(GTSAM_UNSTABLE_BOOST_LIBRARIES ${GTSAM_BOOST_LIBRARIES} ${Boost_THREAD_LIBRARY})
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-05-26 00:12:55 +08:00
										 |  |  | add_custom_target(check.unstable COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-05-04 01:03:25 +08:00
										 |  |  | # assemble core libaries
 | 
					
						
							|  |  |  | foreach(subdir ${gtsam_unstable_subdirs})
 | 
					
						
							|  |  |  |     # Build convenience libraries
 | 
					
						
							|  |  |  |     file(GLOB subdir_srcs "${subdir}/*.cpp")
 | 
					
						
							| 
									
										
										
										
											2012-07-14 05:55:00 +08:00
										 |  |  | 	file(GLOB subdir_headers "${subdir}/*.h")
 | 
					
						
							|  |  |  |     set(${subdir}_srcs ${subdir_srcs} ${subdir_headers})
 | 
					
						
							|  |  |  |     gtsam_assign_source_folders("${${subdir}_srcs}") # Create MSVC structure
 | 
					
						
							| 
									
										
										
										
											2012-06-15 04:00:51 +08:00
										 |  |  |     if (subdir_srcs AND GTSAM_BUILD_CONVENIENCE_LIBRARIES)
 | 
					
						
							| 
									
										
										
										
											2012-05-04 01:03:25 +08:00
										 |  |  |         message(STATUS "Building Convenience Library: ${subdir}_unstable")
 | 
					
						
							| 
									
										
										
										
											2012-07-14 05:55:00 +08:00
										 |  |  |         add_library("${subdir}_unstable" STATIC ${${subdir}_srcs})
 | 
					
						
							| 
									
										
										
										
											2012-05-04 01:03:25 +08:00
										 |  |  |     endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # Build local library and tests
 | 
					
						
							|  |  |  |     message(STATUS "Building ${subdir}_unstable") 
 | 
					
						
							|  |  |  |     add_subdirectory(${subdir})
 | 
					
						
							|  |  |  | endforeach(subdir)
 | 
					
						
							|  |  |  |  
 | 
					
						
							|  |  |  | # assemble gtsam_unstable components
 | 
					
						
							|  |  |  | set(gtsam_unstable_srcs | 
					
						
							|  |  |  |     ${base_srcs} 
 | 
					
						
							| 
									
										
										
										
											2012-08-03 04:47:16 +08:00
										 |  |  |     ${geometry_srcs}
 | 
					
						
							| 
									
										
										
										
											2012-05-04 01:03:25 +08:00
										 |  |  |     ${discrete_srcs}
 | 
					
						
							|  |  |  |     ${dynamics_srcs}
 | 
					
						
							| 
									
										
										
										
											2013-03-24 04:19:36 +08:00
										 |  |  |     ${linear_srcs}    
 | 
					
						
							| 
									
										
										
										
											2013-02-25 03:09:52 +08:00
										 |  |  |     ${nonlinear_srcs}
 | 
					
						
							| 
									
										
										
										
											2012-06-15 04:00:51 +08:00
										 |  |  |     ${slam_srcs}
 | 
					
						
							| 
									
										
										
										
											2012-05-04 01:03:25 +08:00
										 |  |  | )
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Versions - same as core gtsam library
 | 
					
						
							|  |  |  | set(gtsam_unstable_version   ${GTSAM_VERSION_MAJOR}.${GTSAM_VERSION_MINOR}.${GTSAM_VERSION_PATCH})
 | 
					
						
							|  |  |  | set(gtsam_unstable_soversion ${GTSAM_VERSION_MAJOR})
 | 
					
						
							|  |  |  | message(STATUS "GTSAM_UNSTABLE Version: ${gtsam_unstable_version}")
 | 
					
						
							|  |  |  | message(STATUS "Install prefix: ${CMAKE_INSTALL_PREFIX}")
 | 
					
						
							|  |  |  |  
 | 
					
						
							|  |  |  | # build shared and static versions of the library
 | 
					
						
							| 
									
										
										
										
											2013-03-14 02:17:39 +08:00
										 |  |  | if (GTSAM_BUILD_STATIC_LIBRARY)
 | 
					
						
							|  |  |  | 	message(STATUS "Building GTSAM_UNSTABLE - static")
 | 
					
						
							|  |  |  | 	add_library(gtsam_unstable-static STATIC ${gtsam_unstable_srcs})
 | 
					
						
							|  |  |  | 	set_target_properties(gtsam_unstable-static PROPERTIES  | 
					
						
							|  |  |  | 		OUTPUT_NAME         gtsam_unstable
 | 
					
						
							|  |  |  | 		CLEAN_DIRECT_OUTPUT 1
 | 
					
						
							|  |  |  | 		VERSION             ${gtsam_unstable_version}
 | 
					
						
							|  |  |  | 		SOVERSION           ${gtsam_unstable_soversion})
 | 
					
						
							| 
									
										
										
										
											2013-03-14 02:56:21 +08:00
										 |  |  | 	if(WIN32) # Add 'lib' prefix to static library to avoid filename collision with shared library
 | 
					
						
							| 
									
										
										
										
											2013-05-14 02:04:36 +08:00
										 |  |  | 		set_target_properties(gtsam_unstable-static PROPERTIES | 
					
						
							|  |  |  | 			PREFIX "lib"
 | 
					
						
							|  |  |  | 			COMPILE_DEFINITIONS GTSAM_UNSTABLE_IMPORT_STATIC)
 | 
					
						
							| 
									
										
										
										
											2013-03-14 02:56:21 +08:00
										 |  |  | 	endif()
 | 
					
						
							| 
									
										
										
										
											2013-03-14 02:17:39 +08:00
										 |  |  | 	target_link_libraries(gtsam_unstable-static gtsam-static ${GTSAM_UNSTABLE_BOOST_LIBRARIES})
 | 
					
						
							|  |  |  | 	install(TARGETS gtsam_unstable-static EXPORT GTSAM-exports ARCHIVE DESTINATION lib)
 | 
					
						
							|  |  |  | 	list(APPEND GTSAM_EXPORTED_TARGETS gtsam_unstable-static)
 | 
					
						
							|  |  |  | 	set(GTSAM_EXPORTED_TARGETS "${GTSAM_EXPORTED_TARGETS}" PARENT_SCOPE)
 | 
					
						
							|  |  |  | endif()
 | 
					
						
							| 
									
										
										
										
											2012-05-04 01:03:25 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-14 02:17:39 +08:00
										 |  |  | if (GTSAM_BUILD_SHARED_LIBRARY)
 | 
					
						
							| 
									
										
										
										
											2012-05-04 01:03:25 +08:00
										 |  |  |     message(STATUS "Building GTSAM_UNSTABLE - shared")
 | 
					
						
							|  |  |  |     add_library(gtsam_unstable-shared SHARED ${gtsam_unstable_srcs})
 | 
					
						
							|  |  |  |     set_target_properties(gtsam_unstable-shared PROPERTIES  | 
					
						
							|  |  |  |         OUTPUT_NAME         gtsam_unstable
 | 
					
						
							|  |  |  |         CLEAN_DIRECT_OUTPUT 1
 | 
					
						
							|  |  |  |     	VERSION             ${gtsam_unstable_version}
 | 
					
						
							|  |  |  |      	SOVERSION           ${gtsam_unstable_soversion})
 | 
					
						
							| 
									
										
										
										
											2013-03-14 02:56:21 +08:00
										 |  |  | 	if(WIN32)
 | 
					
						
							|  |  |  | 		set_target_properties(gtsam_unstable-shared PROPERTIES | 
					
						
							|  |  |  | 			PREFIX ""
 | 
					
						
							|  |  |  | 			DEFINE_SYMBOL GTSAM_UNSTABLE_EXPORTS
 | 
					
						
							|  |  |  | 			RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin")
 | 
					
						
							|  |  |  | 	endif()
 | 
					
						
							| 
									
										
										
										
											2013-02-05 05:28:39 +08:00
										 |  |  |     target_link_libraries(gtsam_unstable-shared gtsam-shared ${GTSAM_UNSTABLE_BOOST_LIBRARIES})
 | 
					
						
							| 
									
										
										
										
											2012-06-20 06:06:40 +08:00
										 |  |  |     install(TARGETS gtsam_unstable-shared EXPORT GTSAM-exports LIBRARY DESTINATION lib ARCHIVE DESTINATION lib RUNTIME DESTINATION bin)
 | 
					
						
							|  |  |  |     list(APPEND GTSAM_EXPORTED_TARGETS gtsam_unstable-shared)
 | 
					
						
							|  |  |  |     set(GTSAM_EXPORTED_TARGETS "${GTSAM_EXPORTED_TARGETS}" PARENT_SCOPE)
 | 
					
						
							| 
									
										
										
										
											2013-03-14 02:17:39 +08:00
										 |  |  | endif()
 | 
					
						
							| 
									
										
										
										
											2012-05-04 01:03:25 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-05-04 22:44:21 +08:00
										 |  |  | # Wrap version for gtsam_unstable
 | 
					
						
							| 
									
										
										
										
											2012-07-14 05:54:52 +08:00
										 |  |  | if (GTSAM_INSTALL_MATLAB_TOOLBOX)
 | 
					
						
							| 
									
										
										
										
											2012-05-04 22:44:21 +08:00
										 |  |  |     # Set up codegen
 | 
					
						
							|  |  |  |     include(GtsamMatlabWrap)
 | 
					
						
							|  |  |  |     
 | 
					
						
							|  |  |  |     # TODO: generate these includes programmatically
 | 
					
						
							| 
									
										
										
										
											2012-06-06 01:20:19 +08:00
										 |  |  |     # Choose include flags depending on build process
 | 
					
						
							| 
									
										
										
										
											2012-07-14 05:54:52 +08:00
										 |  |  | 	set(MEX_INCLUDE_ROOT ${GTSAM_SOURCE_ROOT_DIR})
 | 
					
						
							| 
									
										
										
										
											2013-02-15 04:42:14 +08:00
										 |  |  | 	set(MEX_LIB_ROOT ${CMAKE_BINARY_DIR})    # FIXME: is this used?
 | 
					
						
							|  |  |  | 	set(GTSAM_LIB_DIR ${MEX_LIB_ROOT}/gtsam) # FIXME: is this used?
 | 
					
						
							|  |  |  | 	set(GTSAM_UNSTABLE_LIB_DIR ${MEX_LIB_ROOT}/gtsam_unstable) # FIXME: is this used?
 | 
					
						
							| 
									
										
										
										
											2012-06-06 01:20:19 +08:00
										 |  |  |     
 | 
					
						
							| 
									
										
										
										
											2012-06-06 02:05:00 +08:00
										 |  |  |     # Generate, build and install toolbox
 | 
					
						
							| 
									
										
										
										
											2013-04-26 02:24:41 +08:00
										 |  |  |     set(mexFlags -I${MEX_INCLUDE_ROOT} -I${Boost_INCLUDE_DIR} -I${CMAKE_BINARY_DIR})
 | 
					
						
							| 
									
										
										
										
											2013-05-14 02:04:36 +08:00
										 |  |  | 	if("${gtsam-default}" STREQUAL "gtsam-static")
 | 
					
						
							|  |  |  | 		list(APPEND mexFlags -DGTSAM_IMPORT_STATIC)
 | 
					
						
							|  |  |  | 	endif()
 | 
					
						
							| 
									
										
										
										
											2012-05-04 22:44:21 +08:00
										 |  |  |     
 | 
					
						
							| 
									
										
										
										
											2012-06-06 02:05:00 +08:00
										 |  |  |     # Macro to handle details of setting up targets
 | 
					
						
							| 
									
										
										
										
											2012-07-05 22:04:55 +08:00
										 |  |  |     wrap_library(gtsam_unstable "${mexFlags}" "./" gtsam)
 | 
					
						
							| 
									
										
										
										
											2012-06-06 02:05:00 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-07-14 05:54:52 +08:00
										 |  |  | endif(GTSAM_INSTALL_MATLAB_TOOLBOX)
 | 
					
						
							| 
									
										
										
										
											2013-04-12 04:47:25 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Build examples
 | 
					
						
							|  |  |  | if (GTSAM_BUILD_EXAMPLES)
 | 
					
						
							|  |  |  |     add_subdirectory(examples)
 | 
					
						
							|  |  |  | endif(GTSAM_BUILD_EXAMPLES)
 |