| 
									
										
										
										
											2019-05-29 17:02:10 +08:00
										 |  |  | project(gtsam_unstable LANGUAGES CXX)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-05-04 01:03:25 +08:00
										 |  |  | # Build full gtsam_unstable library as a single library
 | 
					
						
							| 
									
										
										
										
											2014-04-05 03:49:04 +08:00
										 |  |  | # and also build tests
 | 
					
						
							| 
									
										
										
										
											2012-05-04 01:03:25 +08:00
										 |  |  | set (gtsam_unstable_subdirs | 
					
						
							| 
									
										
										
										
											2014-04-05 03:49:04 +08:00
										 |  |  |     base
 | 
					
						
							| 
									
										
										
										
											2012-08-03 04:47:16 +08:00
										 |  |  |     geometry
 | 
					
						
							| 
									
										
										
										
											2014-11-22 05:04:12 +08:00
										 |  |  |     linear
 | 
					
						
							| 
									
										
										
										
											2013-10-12 01:42:30 +08:00
										 |  |  |     discrete
 | 
					
						
							| 
									
										
										
										
											2012-05-04 01:03:25 +08:00
										 |  |  |     dynamics
 | 
					
						
							| 
									
										
										
										
											2013-02-20 05:37:17 +08:00
										 |  |  |     nonlinear
 | 
					
						
							| 
									
										
										
										
											2013-08-09 04:08:54 +08:00
										 |  |  |     slam
 | 
					
						
							| 
									
										
										
										
											2012-05-04 01:03:25 +08:00
										 |  |  | )
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-15 06:53:03 +08:00
										 |  |  | if(GTSAM_SUPPORT_NESTED_DISSECTION) # Only build partition if metis is built
 | 
					
						
							| 
									
										
										
										
											2014-04-05 03:49:04 +08:00
										 |  |  |     set (gtsam_unstable_subdirs ${gtsam_unstable_subdirs} partition)
 | 
					
						
							| 
									
										
										
										
											2018-12-15 06:53:03 +08:00
										 |  |  | endif(GTSAM_SUPPORT_NESTED_DISSECTION)
 | 
					
						
							| 
									
										
										
										
											2014-04-05 03:49:04 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-05-26 00:12:55 +08:00
										 |  |  | add_custom_target(check.unstable COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-20 01:50:09 +08:00
										 |  |  | # To exclude a source from the library build (in any subfolder)
 | 
					
						
							|  |  |  | # Add the full name to this list, as in the following example
 | 
					
						
							|  |  |  | # Sources to remove from builds
 | 
					
						
							|  |  |  | set (excluded_sources # "")
 | 
					
						
							| 
									
										
										
										
											2013-08-09 04:08:54 +08:00
										 |  |  |     "${CMAKE_CURRENT_SOURCE_DIR}/slam/serialization.cpp"
 | 
					
						
							| 
									
										
										
										
											2013-06-20 01:50:09 +08:00
										 |  |  | )
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | set (excluded_headers # "")
 | 
					
						
							| 
									
										
										
										
											2014-04-05 03:49:04 +08:00
										 |  |  |     "${CMAKE_CURRENT_SOURCE_DIR}/slam/serialization.h"
 | 
					
						
							| 
									
										
										
										
											2013-06-20 01:50:09 +08:00
										 |  |  | )
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-01-24 02:29:30 +08:00
										 |  |  | # if GTSAM_USE_BOOST_FEATURES is not set, then we need to exclude the following:
 | 
					
						
							|  |  |  | if(NOT GTSAM_USE_BOOST_FEATURES)
 | 
					
						
							| 
									
										
										
										
											2023-02-06 17:31:56 +08:00
										 |  |  |     list (APPEND excluded_sources | 
					
						
							| 
									
										
										
										
											2023-01-24 02:29:30 +08:00
										 |  |  |         "${CMAKE_CURRENT_SOURCE_DIR}/linear/QPSParser.cpp"
 | 
					
						
							|  |  |  |         "${CMAKE_CURRENT_SOURCE_DIR}/linear/QPSSolver.cpp"
 | 
					
						
							| 
									
										
										
										
											2023-01-24 09:56:05 +08:00
										 |  |  |         "${CMAKE_CURRENT_SOURCE_DIR}/discrete/Scheduler.cpp"
 | 
					
						
							| 
									
										
										
										
											2023-01-24 02:29:30 +08:00
										 |  |  |     )
 | 
					
						
							| 
									
										
										
										
											2023-02-06 17:31:56 +08:00
										 |  |  |     list (APPEND excluded_headers | 
					
						
							| 
									
										
										
										
											2023-01-24 02:29:30 +08:00
										 |  |  |         "${CMAKE_CURRENT_SOURCE_DIR}/linear/QPSParser.h"
 | 
					
						
							|  |  |  |         "${CMAKE_CURRENT_SOURCE_DIR}/linear/QPSSolver.h"
 | 
					
						
							| 
									
										
										
										
											2023-01-24 09:56:05 +08:00
										 |  |  |         "${CMAKE_CURRENT_SOURCE_DIR}/discrete/Scheduler.h"
 | 
					
						
							| 
									
										
										
										
											2023-02-06 17:31:56 +08:00
										 |  |  |         "${CMAKE_CURRENT_SOURCE_DIR}/parition/FindSeparator.h"
 | 
					
						
							|  |  |  |         "${CMAKE_CURRENT_SOURCE_DIR}/parition/FindSeparator-inl.h"
 | 
					
						
							| 
									
										
										
										
											2023-01-24 02:29:30 +08:00
										 |  |  |     )
 | 
					
						
							|  |  |  | endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-13 02:40:24 +08:00
										 |  |  | # assemble core libraries
 | 
					
						
							| 
									
										
										
										
											2012-05-04 01:03:25 +08:00
										 |  |  | 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")
 | 
					
						
							| 
									
										
										
										
											2013-06-20 01:50:09 +08:00
										 |  |  |     list(REMOVE_ITEM subdir_srcs ${excluded_sources})
 | 
					
						
							|  |  |  |     list(REMOVE_ITEM subdir_headers ${excluded_headers})
 | 
					
						
							| 
									
										
										
										
											2012-07-14 05:55:00 +08:00
										 |  |  |     set(${subdir}_srcs ${subdir_srcs} ${subdir_headers})
 | 
					
						
							|  |  |  |     gtsam_assign_source_folders("${${subdir}_srcs}") # Create MSVC structure
 | 
					
						
							| 
									
										
										
										
											2012-05-04 01:03:25 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     # Build local library and tests
 | 
					
						
							| 
									
										
										
										
											2014-04-05 03:49:04 +08:00
										 |  |  |     message(STATUS "Building ${subdir}_unstable")
 | 
					
						
							| 
									
										
										
										
											2012-05-04 01:03:25 +08:00
										 |  |  |     add_subdirectory(${subdir})
 | 
					
						
							|  |  |  | endforeach(subdir)
 | 
					
						
							| 
									
										
										
										
											2014-04-05 03:49:04 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-18 14:22:41 +08:00
										 |  |  | # dllexport.h
 | 
					
						
							|  |  |  | set(library_name GTSAM_UNSTABLE) # For substitution in dllexport.h.in
 | 
					
						
							|  |  |  | configure_file("${GTSAM_SOURCE_DIR}/cmake/dllexport.h.in" "dllexport.h")
 | 
					
						
							|  |  |  | list(APPEND gtsam_unstable_srcs "${PROJECT_BINARY_DIR}/dllexport.h")
 | 
					
						
							| 
									
										
										
										
											2020-05-29 06:09:31 +08:00
										 |  |  | install(FILES "${PROJECT_BINARY_DIR}/dllexport.h" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gtsam_unstable)
 | 
					
						
							| 
									
										
										
										
											2019-07-18 14:22:41 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-05-04 01:03:25 +08:00
										 |  |  | # assemble gtsam_unstable components
 | 
					
						
							|  |  |  | set(gtsam_unstable_srcs | 
					
						
							| 
									
										
										
										
											2014-04-05 03:49:04 +08:00
										 |  |  |     ${base_srcs}
 | 
					
						
							| 
									
										
										
										
											2012-08-03 04:47:16 +08:00
										 |  |  |     ${geometry_srcs}
 | 
					
						
							| 
									
										
										
										
											2014-11-22 05:04:12 +08:00
										 |  |  |     ${linear_srcs}
 | 
					
						
							| 
									
										
										
										
											2013-10-12 01:42:30 +08:00
										 |  |  |     ${discrete_srcs}
 | 
					
						
							| 
									
										
										
										
											2014-04-05 03:49:04 +08:00
										 |  |  |     ${dynamics_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
										 |  |  | )
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-15 06:53:03 +08:00
										 |  |  | if(GTSAM_SUPPORT_NESTED_DISSECTION) # Only build partition if metis is built
 | 
					
						
							| 
									
										
										
										
											2014-04-05 03:49:04 +08:00
										 |  |  |     set (gtsam_unstable_srcs ${gtsam_unstable_srcs} ${partition_srcs})
 | 
					
						
							| 
									
										
										
										
											2018-12-15 06:53:03 +08:00
										 |  |  | endif(GTSAM_SUPPORT_NESTED_DISSECTION)
 | 
					
						
							| 
									
										
										
										
											2014-04-05 03:49:04 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											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}")
 | 
					
						
							| 
									
										
										
										
											2014-04-05 03:49:04 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-13 05:29:30 +08:00
										 |  |  | add_library(gtsam_unstable ${GTSAM_LIBRARY_TYPE} ${gtsam_unstable_srcs})
 | 
					
						
							| 
									
										
										
										
											2019-05-29 17:02:10 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Apply build flags:
 | 
					
						
							|  |  |  | gtsam_apply_build_flags(gtsam_unstable)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-01-08 07:11:08 +08:00
										 |  |  | set_target_properties(gtsam_unstable PROPERTIES | 
					
						
							|  |  |  |   OUTPUT_NAME         gtsam_unstable
 | 
					
						
							|  |  |  |   CLEAN_DIRECT_OUTPUT 1
 | 
					
						
							|  |  |  |   VERSION             ${gtsam_unstable_version}
 | 
					
						
							|  |  |  |   SOVERSION           ${gtsam_unstable_soversion})
 | 
					
						
							| 
									
										
										
										
											2019-01-15 07:38:14 +08:00
										 |  |  | target_link_libraries(gtsam_unstable PUBLIC gtsam)
 | 
					
						
							|  |  |  | # No need to link against Boost here, it's inherited from gtsam PUBLIC interface
 | 
					
						
							| 
									
										
										
										
											2019-01-08 07:11:08 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | if(WIN32) # Add 'lib' prefix to static library to avoid filename collision with shared library
 | 
					
						
							| 
									
										
										
										
											2023-02-13 05:29:30 +08:00
										 |  |  | 	if (NOT GTSAM_SHARED_LIB)
 | 
					
						
							| 
									
										
										
										
											2014-01-31 03:41:25 +08:00
										 |  |  | 		set_target_properties(gtsam_unstable PROPERTIES | 
					
						
							| 
									
										
										
										
											2013-05-14 02:04:36 +08:00
										 |  |  | 			PREFIX "lib"
 | 
					
						
							|  |  |  | 			COMPILE_DEFINITIONS GTSAM_UNSTABLE_IMPORT_STATIC)
 | 
					
						
							| 
									
										
										
										
											2019-01-08 07:11:08 +08:00
										 |  |  | 	else()
 | 
					
						
							| 
									
										
										
										
											2014-01-31 03:41:25 +08:00
										 |  |  | 		set_target_properties(gtsam_unstable PROPERTIES | 
					
						
							| 
									
										
										
										
											2013-03-14 02:56:21 +08:00
										 |  |  | 			PREFIX ""
 | 
					
						
							|  |  |  | 			DEFINE_SYMBOL GTSAM_UNSTABLE_EXPORTS
 | 
					
						
							|  |  |  | 			RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin")
 | 
					
						
							|  |  |  | 	endif()
 | 
					
						
							| 
									
										
										
										
											2013-03-14 02:17:39 +08:00
										 |  |  | endif()
 | 
					
						
							| 
									
										
										
										
											2012-05-04 01:03:25 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-01-08 07:11:08 +08:00
										 |  |  | install( | 
					
						
							|  |  |  | 	TARGETS gtsam_unstable
 | 
					
						
							| 
									
										
										
										
											2021-10-24 00:45:21 +08:00
										 |  |  | 	EXPORT GTSAM_UNSTABLE-exports
 | 
					
						
							| 
									
										
										
										
											2020-05-29 06:09:31 +08:00
										 |  |  | 	LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
 | 
					
						
							|  |  |  | 	ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
 | 
					
						
							|  |  |  | 	RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
 | 
					
						
							| 
									
										
										
										
											2021-10-24 00:45:21 +08:00
										 |  |  | list(APPEND GTSAM_UNSTABLE_EXPORTED_TARGETS gtsam_unstable)
 | 
					
						
							|  |  |  | set(GTSAM_UNSTABLE_EXPORTED_TARGETS "${GTSAM_UNSTABLE_EXPORTED_TARGETS}" PARENT_SCOPE)
 | 
					
						
							| 
									
										
										
										
											2019-01-08 07:11:08 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-12 04:47:25 +08:00
										 |  |  | # Build examples
 | 
					
						
							| 
									
										
										
										
											2014-06-08 10:02:11 +08:00
										 |  |  | add_subdirectory(examples)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Build timing
 | 
					
						
							|  |  |  | add_subdirectory(timing)
 |