2
A
回答
2
沒有,但它是一個簡單的項目設置:
project(myProject)
enable_language(CXX)
file(GLOB SRC_FILES *.cpp)
include_directories(${PROJECT_SOURCE_DIR})
add_executable(myExe ${SRC_FILES})
假設你正在一個可執行文件。如果您正在製作圖書館,則應使用add_library
。如果您的項目在src
和include
等子目錄中,只需更改路徑。
0
(我知道這是要求相當長一段時間以前,但無論如何,我會發表我的答案,以供將來參考。)
我認爲更好的主意是不是有一個CMakeLists.txt
自動將所有來源有每次運行時都使用一個glob,而是一個靜態的。我想最初的意思是一個腳本,它掃描當前目錄(遞歸)的源文件並將它們添加到CMake文件中。這可能會節省很多時間將每個源文件的名稱複製到CMake文件。因此:讓我們自動化吧!
創建一個名爲cmake-project.sh
具有以下內容的文件:
#!/bin/bash
# use the first argument as project name
PROJECT_NAME=$1
# find source files, but exclude the build directory
PROJECT_SOURCES=$(find . -iname "*.cpp" -not -path "./build/*")
# find header files, but exclude the build directory;
# only print the name of the directory; only print unique names
PROJECT_SOURCE_DIR=$(find . -iname "*.h" -not -path "./build/*" \
-printf "%h\n" | sort -u)
# The standard content of the CMakeLists.txt can be edited here
cat <<EOF> CMakeLists.txt
cmake_minimum_required (VERSION 2.8)
set(PROJ_NAME $PROJECT_NAME)
set(PROJ_SOURCES $PROJECT_SOURCES)
project(\${PROJ_NAME})
include_directories(${PROJECT_SOURCE_DIR})
add_executable(\${PROJ_NAME} \${PROJ_SOURCES})
EOF
然後,使文件可執行文件chmod +x cmake-project.sh
。現在,您可以在根目錄中運行./cmake-project.sh [your_project_name]
以自動創建一個靜態(即不包含glob)CMakeLists.txt
。
當然,如有必要,您必須改編一些東西(例如使用.cc
而不是.cpp
),但您明白了。
相關問題
- 1. 使用cmake創建項目源目錄的後代的頭文件
- 2. 創建項目目錄的java文件
- 3. CMake添加頭到項目文件
- 4. 從Gtk C++源文件和頭文件創建Glade XML文件
- 5. C++項目的CMake文件
- 6. 創建jar文件目錄?
- 7. 創建jar文件目錄
- 8. CMake的構建和項目目錄
- 9. 從路徑創建文件夾目錄?
- 10. 從pdf文件創建目錄
- 11. 從文件名創建目錄?
- 12. 如何從SBT中的資源(或其他項目文件)創建源文件
- 13. 使用原型插件在項目目錄中創建文件
- 14. 創建幾個目錄和文件
- 15. Django文件上傳和創建目錄
- 16. 通過Python創建文件和目錄
- 17. Java - 創建文件和目錄
- 18. 使用PHP創建文件和目錄
- 19. 在iOS中創建文件和目錄
- 20. 從源目錄複製html文件以建立目錄
- 21. WiX源文件與項目文件位於不同目錄中
- 22. 從.cpp文件創建Xcode項目
- 23. 從.jar文件創建項目
- 24. 從.jar文件重新創建項目
- 25. 從ANT build.xml文件創建eclipse項目
- 26. cmake的桂秀,除了源代碼目錄和二進制文件目錄
- 27. 創建文件,遞歸創建目錄
- 28. 在創建文件時創建目錄
- 29. CMake:將文件從build目錄複製到源代碼中
- 30. 爲頭創建的源文件文件
那麼你可以使用通配符? – sashoalm
http://cmake.org/cmake/help/v2.8.8/cmake.html#command:file是的,GLOB選項使用簡單的REGEX。 – tpg2114
請注意,這不是推薦的方式。手動添加文件比較好,但這是一種快速而骯髒的方式。如果是從某種意義上說「完成」的項目,那麼您不會添加/刪除源文件,那麼就沒有問題了。 – tpg2114