1
A
回答
1
你总是可以让custom_target
工作在你的library
或executable
做特殊的东西。
如果你想在cmake的改变的链接器命令的最低水平。我所知道的是覆盖CMAKE_CXX_LINK_EXECUTABLE
-variable(对于C是CMAKE_C_LINK_EXECUTABLE
)使用自己的连接器。如果这样做,请注意该变量中的特殊<>
字段。所有变量见here。下面的部分(扩展规则)显示了可以在cmake的构建变量中使用的特殊“标签”。
0
我有我的主要CMakeLists.txt
:
#-----------------------------------------------------------------
# statifier determine (http://statifier.sourceforge.net/) for linux
#-----------------------------------------------------------------
set(FOOBAR-HAS-STATIFIER false)
if (UNIX)
find_program(STATIFIER_EXE NAMES "statifier")
if (NOT STATIFIER_EXE STREQUAL STATIFIER_EXE-NOTFOUND)
set(FOOBAR-HAS-STATIFIER true)
macro(MAKE_STATIC_EXE _static_exe_out)
foreach (_target ${ARGN})
set(_shared_exe "${CMAKE_CURRENT_BINARY_DIR}/${_target}")
set(_static_exe "${CMAKE_CURRENT_BINARY_DIR}/${_target}-static/${_target}")
add_custom_command(POST_BUILD
OUTPUT ${_static_exe}
COMMAND ${STATIFIER_EXE} --set=LD_BIND_NOW=yes ${_shared_exe} ${_static_exe}
DEPENDS ${_shared_exe}
)
SET(${_static_exe_out} ${${_static_exe_out}} ${_static_exe})
endforeach()
endmacro()
else()
message ("statifier (http://statifier.sourceforge.net/) not found. Can not build setup for unix")
endif()
endif()
,后来在主应用程序CMakeLists.txt
##
## static foobar
##
if (FOOBAR-HAS-STATIFIER)
make_static_exe(FOOBAR-STATIC-dynstat dynstat)
message("${FOOBAR-STATIC-dynstat}")
endif()
一个succesfull建立后必须在build目录一foobar
和静态foobar-static
executeable。
相关问题
- 1. CMake的 - 使用get_filename_component
- 2. cmake的使用PUBLIC_HEADER
- 3. 使用cmake的pjsip
- 4. CUDA使用CMake的
- 5. 使用cmake
- 6. 使用cmake
- 7. 使用cmake
- 8. 使不使用CMake的
- 9. 链接使用cmake
- 10. 使用libsigC++和cmake
- 11. 使用CMake和setup.py
- 12. 使用CMake过滤?
- 13. 使用cmake编译
- 14. OpenCV的,建筑使用cmake
- 15. 使用CMake的zip文件?
- 16. 使用cmake与Qt Creator的
- 17. 连接使用CMake的
- 18. 使用Visual Studio 2015的cmake
- 19. 使用CMake的OpenGL + Qt
- 20. 如何使用CMake从VS9切换到NMake使用CMake
- 21. Cmake | UWP ::使用Cmake构建通用Windows应用程序
- 22. 怎么做cmake的支票使用cmake工作时,编译器
- 23. 使用cmake创建一个无cmake的Makefile
- 24. CMake可以生成*不*使用cmake的构建脚本吗?
- 25. 使用CMake版本3.5.2的OpenCV与CMake 2.X.X
- 26. 使用CMake构建PubNub C++
- 27. 使用cmake构建QTCharts
- 28. 在cmake中使用* .cpp add_executable
- 29. 与cmake一起使用++(QT)
- 30. 使用cmake时出错