mirror of
				https://github.com/PaddlePaddle/FastDeploy.git
				synced 2025-10-31 03:46:40 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			37 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
| file(GLOB snippets_SRCS "*.cpp")
 | |
| 
 | |
| add_custom_target(all_snippets)
 | |
| 
 | |
| foreach(snippet_src ${snippets_SRCS})
 | |
|   get_filename_component(snippet ${snippet_src} NAME_WE)
 | |
|   set(compile_snippet_target compile_${snippet})
 | |
|   set(compile_snippet_src ${compile_snippet_target}.cpp)
 | |
|   if((NOT ${snippet_src} MATCHES "cxx11") OR EIGEN_COMPILER_SUPPORT_CPP11)
 | |
|     file(READ ${snippet_src} snippet_source_code)
 | |
|     configure_file(${CMAKE_CURRENT_SOURCE_DIR}/compile_snippet.cpp.in
 | |
|                   ${CMAKE_CURRENT_BINARY_DIR}/${compile_snippet_src})
 | |
|     add_executable(${compile_snippet_target}
 | |
|                   ${CMAKE_CURRENT_BINARY_DIR}/${compile_snippet_src})
 | |
|     if(EIGEN_STANDARD_LIBRARIES_TO_LINK_TO)
 | |
|       target_link_libraries(${compile_snippet_target} ${EIGEN_STANDARD_LIBRARIES_TO_LINK_TO})
 | |
|     endif()
 | |
|     if(${snippet_src} MATCHES "cxx11")
 | |
|       set_target_properties(${compile_snippet_target} PROPERTIES COMPILE_FLAGS "-std=c++11")
 | |
|     endif()
 | |
|     if(${snippet_src} MATCHES "deprecated")
 | |
|       set_target_properties(${compile_snippet_target} PROPERTIES COMPILE_FLAGS "-DEIGEN_NO_DEPRECATED_WARNING")
 | |
|     endif()
 | |
|     add_custom_command(
 | |
|       TARGET ${compile_snippet_target}
 | |
|       POST_BUILD
 | |
|       COMMAND ${compile_snippet_target}
 | |
|       ARGS >${CMAKE_CURRENT_BINARY_DIR}/${snippet}.out
 | |
|     )
 | |
|     add_dependencies(all_snippets ${compile_snippet_target})
 | |
|     set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/${compile_snippet_src}
 | |
|                                 PROPERTIES OBJECT_DEPENDS ${snippet_src})
 | |
|   else()
 | |
|     message("skip snippet ${snippet_src} because compiler does not support C++11")
 | |
|   endif()
 | |
| endforeach()
 | 
