相关疑难解决方法(0)

CMAKE中LANGUAGE变量的可能值是什么

我无法在CMAKE.org网站或其他任何地方找到LANGUAGE变量的可能值列表.有人请列举CMAKE认可的价值观吗?我特别需要指定Objective C++.

cmake

12
推荐指数
2
解决办法
6947
查看次数

如何在CMake中删除"可能无法从目标读取位置属性"错误?

我现在正在尝试在这篇文章中运行一个cmake脚本.使用此脚本,CMake将打印目标的所有属性.但是,当它尝试检索目标的"LOCATION"属性时,会发现以下错误:

The LOCATION property may not be read from target "abc".  Use the target
  name directly with add_custom_command, or use the generator expression
  $<TARGET_FILE>, as appropriate.
Run Code Online (Sandbox Code Playgroud)

然后我尝试打印属性LOCATION,它也不起作用.有任何想法吗?

cmake

7
推荐指数
1
解决办法
2077
查看次数

如何从目标中获取包含目录以在 add_custom_target 中使用?

我正在使用 对依赖项进行建模target_link_libraries,正如博客文章中所做的那样。

target_link_libraries(Foo
    LibraryA
    LibraryB
)
Run Code Online (Sandbox Code Playgroud)

这很好用,但由于各种原因,我需要使用add_custom_target自定义命令来预处理文件。问题是,这个自定义目标取决于 LibraryA 和 LibraryB 的包含。我真的希望像如何target_link_libraries工作一样执行以下操作(请参阅 LibraryA 和 LibraryB 位):

add_custom_target(Bar ALL
    COMMAND ${CMAKE_C_COMPILER} thing.cpp LibraryA LibraryB /P
    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/Path/Here
    COMMENT "Preprocessing to a file"
    VERBATIM
)
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用。LibraryA 和 LibraryB 按它们出现的方式放入。即使它确实有效,我想我会得到比包含更多的东西,因为我认为目标也包括库。也许这不是一个好方法。

那么,我可以在这里做什么?如何从每个目标中提取包含目录,以便在自定义命令中使用?我发现如果我find_package(Foo REQUIRED)可以访问Foo_DIR,但它指向构建目录而不是包含所在的源目录。

cmake add-custom-command

3
推荐指数
1
解决办法
6735
查看次数

打印完整的CMake项目CFLAGS / CXXFLAGS

是否可以打印出完整的*CFLAGS*CXX_FLAGS一个CMake的项目(所有目标的?)?

CMakeCache.txt在配置和构建项目后尝试查找,但是所有*C*FLAGS*相关变量几乎为空,并且无论如何都不包含我的项目设置,例如-D-I依赖项特定的标志。

为什么我要这样做?为了为完成clang的vim插件创建配置文件,请执行以下操作:https ://vim.sourceforge.io/scripts/script.php?script_id =3302

cmake clang-complete

0
推荐指数
3
解决办法
2583
查看次数

标签 统计

cmake ×4

add-custom-command ×1

clang-complete ×1