我寫的CMakeLists.txt
文件具有以下文件結構Linux上cmake:如何編寫CMakeLists.txt以便於將Linux程序移植到Windows?
-main
--include
--bin
--lib
----SRC
------CMakeLists.txt
------dir1
--------CMakeLists.txt
------dir2
--------CMakeLists.txt
dir1/CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
set(HOME "/workspace/main")
set(INCLUDE "${HOME}/include")
set(LIB "${HOME}/lib")
set(LIBRARY_OUTPUT_PATH "${HOME}/lib")
set(CMAKE_BUILD_TYPE "Debug")
set(CMAKE_CXX_COMPILER "g++")
set(CMAKE_C_FLAGS_DEBUG "xxx")
set(CMAKE_CXX_FLAGS_DEBUG "xxx")
include_directories(${INCLUDE} ${INCLUDE}/AR ${INCLUDE}/linux-x86_64)
add_library(video STATIC video.c video2.c)
dir2
目錄的CMakeLists.txt類似的內容
SRC/CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
add_subdirectory(dir1)
add_subdirectory(dir2)
我的問題是:如何編寫CMakeLists.txt
爲了方便Linux
程序移植到Windows
?
我添加了一條語句,在'dir1'下的'CMakeLists.txt'中顯示'CMAKE_SOURCE_DIR'值。當我在'dir1'目錄中'cmake'時,變量值爲/ workspace/main/lib/SRC' –
你的問題不會留下,你想從'dir1'調用'cmake'。相反,它有'SRC/CMakeLists.txt',它下降到子目錄中。另外,'dir1/CMakeLists.txt'不包含'project()'調用,所以目前不能單獨建立。那麼,你是否想要分別構建子項目「dir1」和「dir2」?如果是這樣,請在問題文章中添加關於此的概念。 – Tsyvarev
是的。我想做'SRC'目錄下的每個庫都可以單獨構建。你有什麼好的方法嗎? –