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時出錯