[英]CMakeLists.txt structure
我想開始一個cmake項目,我有很多文件。 結構如下。
types.h
包含在functions.h
和dag.h
functions.h
包含在basic.cpp, br.cpp, IR.cpp
和UIR.cpp
functions.h
和dag.h
包含在dag.cpp, dag-cmp.cpp, dag-cover.cpp, dag-make.cpp
和dag-sum.cpp
顯然,我在同一目錄中也有一個main.cpp
,其中包括types.h, dag.h
和functions.h
對於CMakeLists.txt和cmake項目,哪個是最佳解決方案?
cmake_minimum_required(VERSION 3.12)
project(myproject)
set(CMAKE_CXX_STANDARD 14)
add_executable(myproject all.cpp all.h)
這可能是一種格式。 輸入以空格分隔的.cpp和.h文件。 如果cpp / .h文件包含空格,則將其用雙引號引起來。
您可以根據需要編輯C ++ Standard。
我認為,沒有最好的解決方案,但是我希望以下幾點:
cmake_minimum_required(VERSION 3.12)
project(myproject)
set(SOURCE_FILES
basic.cpp
br.cpp
IR.cpp
UIR.cpp
dag.cpp
dag-cmp.cpp
dag-cover.cpp
dag-make.cpp
dag-sum.cpp
main.cpp
)
set(HEADER_FILES
types.h
functions.h
dag.h
)
add_executable(${PROJECT_NAME} ${SOURCE_FILES} ${HEADER_FILES})
target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_14)
${PROJECT_NAME}
可以輕松更改項目名稱,因為您只需更改一次即可。 target_compile_features
而不是set(CMAKE_CXX_STANDARD 14)
考慮所有文件都在src /文件夾中。 CMake可以自動列出它們:
file(GLOB_RECURSE source_files src/*)
add_executable(exec ${source_files})
第一行將查找src文件夾(及其子文件夾)中的所有文件,並將列表存儲在source_files var中。 第二行將從source_files var加載文件並將其添加到可執行文件“ exec”中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.