草庐IT

cmake-custom-command

全部标签

c++ - 将 CMake 与同一语言的多个编译器一起使用

CMake似乎相当坚定地认为所有C++源文件都应该有一个,而且只有一个CMAKE_CXX_COMPILER。我找不到在每个目标的基础上覆盖它的方法。这使得使用内置CMake工具在单个CMakeLists.txt中混合主机和交叉编译非常困难。所以,我的问题是:为同一语言(即C++)使用多个编译器的最佳方式是什么? 最佳答案 使用CMake是不可能做到这一点的。CMake仅保留一组编译器属性,这些属性由CMakeLists.txt文件中的所有目标共享。如果要使用两个编译器,则需要运行两次CMake。这甚至适用于例如从同一个编译器工具链构

c++ - 将 CMake 与同一语言的多个编译器一起使用

CMake似乎相当坚定地认为所有C++源文件都应该有一个,而且只有一个CMAKE_CXX_COMPILER。我找不到在每个目标的基础上覆盖它的方法。这使得使用内置CMake工具在单个CMakeLists.txt中混合主机和交叉编译非常困难。所以,我的问题是:为同一语言(即C++)使用多个编译器的最佳方式是什么? 最佳答案 使用CMake是不可能做到这一点的。CMake仅保留一组编译器属性,这些属性由CMakeLists.txt文件中的所有目标共享。如果要使用两个编译器,则需要运行两次CMake。这甚至适用于例如从同一个编译器工具链构

build - 有 CMake 递归扫描文件夹吗?

如何设置CMake以递归扫描给定目录并确定源文件列表?我的项目是一个共享库。我有一个类似这样的文件夹结构:/src/#Sourcefilesinanarbitrarytreeinclude/#Headers,treemirrorsthatofthesrc/folderexamples/#ExecutablecodeexamplesthatlinkagainstthelibraryCMakeLists.txt我希望CMake递归扫描src和include并确定我的项目中的源文件和头文件列表,而不管目录结构如何。我也想避免:用无穷无尽的CMakeLists.txt文件污染src/和incl

build - 有 CMake 递归扫描文件夹吗?

如何设置CMake以递归扫描给定目录并确定源文件列表?我的项目是一个共享库。我有一个类似这样的文件夹结构:/src/#Sourcefilesinanarbitrarytreeinclude/#Headers,treemirrorsthatofthesrc/folderexamples/#ExecutablecodeexamplesthatlinkagainstthelibraryCMakeLists.txt我希望CMake递归扫描src和include并确定我的项目中的源文件和头文件列表,而不管目录结构如何。我也想避免:用无穷无尽的CMakeLists.txt文件污染src/和incl

c - CMake下的多个目录

我目前正在使用递归make和autotools,并希望迁移到CMake的项目看起来像这样:lx/(projectroot)src/lx.c(containsmainmethod)conf.cutil/str.cstr.hetc.cetc.hserver/server.cserver.hrequest.crequest.hjs/js.cjs.hinterp.cinterp.hbin/lx(executable)我该怎么办? 最佳答案 如果从来没有任何高于lx/src目录的源,则不需要lx/CMakeLists.txt文件。如果有,它应

c - CMake下的多个目录

我目前正在使用递归make和autotools,并希望迁移到CMake的项目看起来像这样:lx/(projectroot)src/lx.c(containsmainmethod)conf.cutil/str.cstr.hetc.cetc.hserver/server.cserver.hrequest.crequest.hjs/js.cjs.hinterp.cinterp.hbin/lx(executable)我该怎么办? 最佳答案 如果从来没有任何高于lx/src目录的源,则不需要lx/CMakeLists.txt文件。如果有,它应

c# - 使用 CMake 生成 C# 项目

我正在尝试在Windows上的现有C++CMake代码库中生成C#项目。经过一番研究,我发现只有两个项目为CMake构建了自己的CSharp编译器:gdcm和kde.我都试过了。不幸的是,第一个未能生成C#项目。相反,它创建了一个包含cs文件的VSC++项目,并且由于为链接器设置了C++标志,构建总是失败并出现错误。在试用了他们提供的示例项目后,我想知道这是否可能是由于“VisualStudio82005”代码生成器的限制?第二个项目主要针对Mono,所以我也没有成功。有没有人在使用其中一个CMake模块或其他东西构建C#项目方面有过积极的经验? 最佳答案

c# - 使用 CMake 生成 C# 项目

我正在尝试在Windows上的现有C++CMake代码库中生成C#项目。经过一番研究,我发现只有两个项目为CMake构建了自己的CSharp编译器:gdcm和kde.我都试过了。不幸的是,第一个未能生成C#项目。相反,它创建了一个包含cs文件的VSC++项目,并且由于为链接器设置了C++标志,构建总是失败并出现错误。在试用了他们提供的示例项目后,我想知道这是否可能是由于“VisualStudio82005”代码生成器的限制?第二个项目主要针对Mono,所以我也没有成功。有没有人在使用其中一个CMake模块或其他东西构建C#项目方面有过积极的经验? 最佳答案

gcc - 在 CMake 中使用 -isystem 而不是 -I

在使用gcc构建时,CMake中是否有任何方法可以强制通过include_directories(或者可能通过不同的函数)指定的路径使用-isystem标志而不是-I标志?见http://gcc.gnu.org/onlinedocs/gcc/Directory-Options.html#Directory-Options有关-I和-isystem的详细信息。 最佳答案 是的,您通过使用可选的SYSTEM标志强制将路径作为系统包含include_directories(SYSTEMpath)https://cmake.org/cmak

gcc - 在 CMake 中使用 -isystem 而不是 -I

在使用gcc构建时,CMake中是否有任何方法可以强制通过include_directories(或者可能通过不同的函数)指定的路径使用-isystem标志而不是-I标志?见http://gcc.gnu.org/onlinedocs/gcc/Directory-Options.html#Directory-Options有关-I和-isystem的详细信息。 最佳答案 是的,您通过使用可选的SYSTEM标志强制将路径作为系统包含include_directories(SYSTEMpath)https://cmake.org/cmak