CMake的哪个文件组织?CMakeLists.txt是否应包含其他文件?
我使用CMASE来配置、构建和安装C++代码。 我已经定义了一些用户选项。 我添加了一个选项,让CMake下载外部依赖项。 等等等等 目前,关于CMake的所有内容都写在一个文件CMakeLists.txt中。还有一个配置文件'config.cmake',允许用户定义各种参数,如详细级别、库路径、编译器标志等 什么是CMake的好文件组织? 是否应将CMakeLists.txt文件划分为子文件CMake的哪个文件组织?CMakeLists.txt是否应包含其他文件?,cmake,Cmake,我使用CMASE来配置、构建和安装C++代码。 我已经定义了一些用户选项。 我添加了一个选项,让CMake下载外部依赖项。 等等等等 目前,关于CMake的所有内容都写在一个文件CMakeLists.txt中。还有一个配置文件'config.cmake',允许用户定义各种参数,如详细级别、库路径、编译器标志等 什么是CMake的好文件组织? 是否应将CMakeLists.txt文件划分为子文件 非常感谢你的帮助 一个好的文件组织取决于您的CMake逻辑有多大,或者您希望它有多大。一般来说: 可能
非常感谢你的帮助 一个好的文件组织取决于您的CMake逻辑有多大,或者您希望它有多大。一般来说:
project/
CMakeLists.txt
README
CMake/
FindSpecialtyLib1.cmake
FindSpecialtyLib2.cmake
CustomCMakeMacroA.cmake
etc...
include/
CMakeLists.txt (for installing headers, etc. if needed.)
src/
CMakeLists.txt (top level switching logic per user settings, etc.)
lib1/
CMakeLists.txt
src1.cxx
src2.cxx
lib2/
CMakeLists.txt
src1.cxx
src2.c
private_header.h
当然,这只是一个假设的例子——你需要根据你的具体项目来塑造你的逻辑。由于您提到了config.cmake文件,根据我的经验,这种类型的大多数变量设置通常在cmake gui中完成,或者在cmake命令行中从-D定义完成。config.cmake是一种对选项进行分组的方法,但大多数用户可能会从gui开始进行设置。我还建议查看以了解具体问题-我发现它是一个非常有用的资源。一个好的文件组织取决于您的CMake逻辑有多大,或者您希望它有多大。一般来说:
project/
CMakeLists.txt
README
CMake/
FindSpecialtyLib1.cmake
FindSpecialtyLib2.cmake
CustomCMakeMacroA.cmake
etc...
include/
CMakeLists.txt (for installing headers, etc. if needed.)
src/
CMakeLists.txt (top level switching logic per user settings, etc.)
lib1/
CMakeLists.txt
src1.cxx
src2.cxx
lib2/
CMakeLists.txt
src1.cxx
src2.c
private_header.h
当然,这只是一个假设的例子——你需要根据你的具体项目来塑造你的逻辑。由于您提到了config.cmake文件,根据我的经验,这种类型的大多数变量设置通常在cmake gui中完成,或者在cmake命令行中从-D定义完成。config.cmake是一种对选项进行分组的方法,但大多数用户可能会从gui开始进行设置。我还建议你检查一下具体的问题——我发现这是一个非常有用的资源