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的pjsip
- 2. CUDA使用CMake的
- 3. cmake的使用PUBLIC_HEADER
- 4. 使用cmake
- 5. 使用cmake
- 6. 使不使用CMake的
- 7. 使用CMake過濾?
- 8. 鏈接使用cmake
- 9. 使用cmake編譯
- 10. 使用CMake的zip文件?
- 11. 使用Visual Studio 2015的cmake
- 12. 使用cmake與Qt Creator的
- 13. 使用CMake的OpenGL + Qt
- 14. 如何使用CMake從VS9切換到NMake使用CMake
- 15. Cmake | UWP ::使用Cmake構建通用Windows應用程序
- 16. 使用cmake創建一個無cmake的Makefile
- 17. 使用CMake版本3.5.2的OpenCV與CMake 2.X.X
- 18. CMake可以生成*不*使用cmake的構建腳本嗎?
- 19. 使用cmake部署QtCreator
- 20. 與cmake一起使用++(QT)
- 21. 使用cmake編譯CSDP
- 22. 與cmake一起使用intltool
- 23. 使用CMake構建PubNub C++
- 24. Cmake和gcc結合使用
- 25. 在cMake中使用boost.asio
- 26. 使用Cmake運行CppuTests
- 27. 如何使用FindDevIL cmake宏
- 28. 使用cmake時出錯
- 29. 使用CMake生成.dll
- 30. 在使用include_directories和CMake