| 
									
										
										
										
											2015-11-19 21:59:30 +08:00
										 |  |  | # get subdirectories list
 | 
					
						
							| 
									
										
										
										
											2015-11-26 01:21:10 +08:00
										 |  |  | subdirlist(SUBDIRS ${CMAKE_CURRENT_SOURCE_DIR})
 | 
					
						
							| 
									
										
										
										
											2013-11-15 14:59:02 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-19 21:59:30 +08:00
										 |  |  | # get the sources needed to compile gtsam python module
 | 
					
						
							| 
									
										
										
										
											2015-11-26 01:21:10 +08:00
										 |  |  | set(gtsam_python_srcs "")
 | 
					
						
							|  |  |  | foreach(subdir ${SUBDIRS})
 | 
					
						
							| 
									
										
										
										
											2015-11-19 21:59:30 +08:00
										 |  |  | 	file(GLOB ${subdir}_src "${subdir}/*.cpp")
 | 
					
						
							| 
									
										
										
										
											2015-11-26 01:21:10 +08:00
										 |  |  | 	list(APPEND gtsam_python_srcs ${${subdir}_src})
 | 
					
						
							|  |  |  | endforeach()
 | 
					
						
							| 
									
										
										
										
											2013-11-15 14:59:02 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-19 21:59:30 +08:00
										 |  |  | # Create the library
 | 
					
						
							| 
									
										
										
										
											2015-12-02 22:29:07 +08:00
										 |  |  | add_library(gtsam_python SHARED exportgtsam.cpp ${gtsam_python_srcs})
 | 
					
						
							|  |  |  | set_target_properties(gtsam_python PROPERTIES | 
					
						
							|  |  |  | 	OUTPUT_NAME         gtsam_python
 | 
					
						
							|  |  |  | 	SKIP_BUILD_RPATH    TRUE
 | 
					
						
							|  |  |  | 	CLEAN_DIRECT_OUTPUT 1
 | 
					
						
							|  |  |  | )
 | 
					
						
							| 
									
										
										
										
											2016-01-25 07:28:16 +08:00
										 |  |  | target_link_libraries(gtsam_python | 
					
						
							|  |  |  |                       ${Boost_PYTHON${BOOST_PYTHON_VERSION_SUFFIX_UPPERCASE}_LIBRARY}
 | 
					
						
							|  |  |  |                       ${PYTHON_LIBRARY} gtsam)
 | 
					
						
							| 
									
										
										
										
											2015-11-19 21:59:30 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Cause the library to be output in the correct directory.
 | 
					
						
							| 
									
										
										
										
											2015-12-02 20:27:20 +08:00
										 |  |  | # TODO: Change below to work on different systems (currently works only with Linux)
 | 
					
						
							|  |  |  | add_custom_command( | 
					
						
							|  |  |  | 	OUTPUT ${CMAKE_BINARY_DIR}/python/gtsam/_libgtsam_python.so
 | 
					
						
							|  |  |  | 	DEPENDS gtsam_python
 | 
					
						
							| 
									
										
										
										
											2016-01-25 07:28:16 +08:00
										 |  |  | 	COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:gtsam_python> ${CMAKE_BINARY_DIR}/python/gtsam/_libgtsam_python.so
 | 
					
						
							| 
									
										
										
										
											2015-12-02 20:27:20 +08:00
										 |  |  | 	COMMENT "Copying extension module to python/gtsam/_libgtsam_python.so"
 | 
					
						
							|  |  |  | )
 | 
					
						
							|  |  |  | add_custom_target(copy_gtsam_python_module ALL DEPENDS ${CMAKE_BINARY_DIR}/python/gtsam/_libgtsam_python.so)
 |