Tag: cmake

使用 – 系统而不是 – 我与CMake

在使用gcc构build时,CMake中是否有任何方法强制通过include_directories指定的path(或者可能通过不同的函数)使用-isystem标志而不是-I标志? 有关-I和-isystem的详细信息,请参阅http://gcc.gnu.org/onlinedocs/gcc/Directory-Options.html#Directory-Options 。

CMake中的set_target_properties是否覆盖CMAKE_CXX_FLAGS?

在我的CMake项目开始时,我在variablesCMAKE_CXX_FLAGS中设置常规编译标志,就像 set(CMAKE_CXX_FLAGS "-W -Wall ${CMAKE_CXX_FLAGS}") 稍后,我需要附加其他特定于configuration的编译标志(存储在BUILD_FLAGS中)。 我可以使用以下命令: set_target_properties(${TARGET} PROPERTIES COMPILE_FLAGS ${BUILD_FLAGS}) 或者我必须手动添加CMAKE_CXX_FLAGS: set_target_properties(${TARGET} PROPERTIES COMPILE_FLAGS "${CMAKE_CXX_FLAGS} ${BUILD_FLAGS}") 防止CMAKE_CXX_FLAGS被BUILD_FLAGS覆盖?

在CMake中列出include_directories

我有一个cmake构build,我正在寻找一堆的依赖关系,即我有很多的实例: FIND_PACKAGE(SomePackage) if(SOMEPACKAGE_FOUND) include_directories(${SOMEPACKAGE_INCLUDE_DIR}) link_libraries(${SOMEPACKAGE_LIBRARIES}) endif(SOMEPACKAGE_FOUND) 现在,我想添加一个自定义命令来构build一个预编译的头文件,但是为了做到这一点,我需要知道我的include_directories调用添加的所有path。 我怎样才能得到这些目录(最好有适当的-I /path/到/目录格式)的列表,以便我可以将它们添加到我的自定义命令?

如何通过CMake更改Visual Studio解决scheme的启动项目?

我正在使用CMake来生成Visual Studio项目。 除了一件事以外,一切正常。 解决scheme中的启动项目始终是ALL_BUILD 。 我如何通过CMake将启动项目更改为我想要的真实项目?

从父CMakeLists.txt覆盖CMake中的默认选项(…)值

我正在尝试在源代码树中包含几个第三方库,只需对其构build系统进行最小的更改便于升级。 他们都使用CMake,就像我一样,所以在我自己的CMakeLists.txt中,我可以使用add_subdirectory(extern/foo)作为libfoo。 但是,foo CMakeLists.txt编译testing工具,编译文档,我不需要的共享库等等。 libfoo的作者有先见之明,通过选项来控制这些选项 – 例如option(FOO_BUILD_SHARED "Build libfoo shared library" ON) – 这意味着我可以通过CMake命令行设置它们。 但是我想在默认情况下closures,并通过命令行覆盖。 我曾尝试在add_subdirectory(extern/foo)之前set(FOO_BUILD_SHARED OFF) add_subdirectory(extern/foo) 。 这样做的结果是,在第二次和以后的构build尝试中,不会尝试构build共享库,而不是在第一个构build共享库时,这是我真正需要加速的。 这是可能的,还是我需要维护这些项目分叉CMakeLists.txt?

列出由cmake生成的Visual Studio C ++项目中的头文件

我正在为我们的产品构build一个基于cmake的构build系统。 问题是由cmake生成的Visual Studio项目在解决scheme浏览器中不显示头文件。 我需要添加到CMakeList.txt列出头文件? 首选的解决scheme是不需要列出每个特定的头文件。 解决scheme这是我附带的解决scheme: file(GLOB_RECURSE INCS "*.h") add_library(myLib ${SRCS} ${INCS}) 谢谢

cmake不工作,不能执行qmake

我正在使用Ubuntu 14.04。 我试图安装一个需要cmake的程序。 当我运行cmake src/我得到: qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or directory 我究竟做错了什么?

CMake:如何产生二进制“尽可能静态”

我想控制在CMake中find/链接到我的二进制文件的types。 最终的目标是“尽可能静态地生成二进制文件”,即静态链接到每个具有静态版本的库。 这一点非常重要,因为在testing过程中可以在不同的系统上移植二进制代码。 ATM似乎很难实现FindXXX.cmake包,或者更确切地说find_library命令总是在静态和dynamic都可用的时候selectdynamic库。 关于如何实现这个function的技巧 – 最好以一种优雅的方式 – 非常受欢迎!

如何用shell命令的结果初始化一个CMakevariables

有一种方法可以将CMake脚本中的variables设置为shell命令的输出吗? 会想到像SET(FOO COMMAND "echo bar")东西

在CMake中添加多个可执行文件

我在C ++项目中的代码组织如下 我有几个.cpp和.h文件,其中包含我的类 我有几个.cxx文件必须编译.cpp文件和一些外部库。 现在,每个.cxx文件都有一个main()方法,因此我需要为与文件具有相同名称的每个文件添加一个不同的可执行文件。 此外,这些.cxx文件可能无法链接到相同的外部库。 我想写这个版本的CMake,我是一个新手,我怎么去做呢?