我对CMake很新,所以请保持温和。
我有两个目标需要调用internal
才能在运行时进一步使用。现在,当我打电话
set_target_properties(target1 PROPERTIES OUTPUT_NAME internal)
install(TARGETS target1 DESTINATION some/where/target1dir)
set_target_properties(target2 PROPERTIES OUTPUT_NAME internal)
install(TARGETS target2 DESTINATION some/where/target2dir)
在调用cmake时,两个目标中的一个将被另一个目标覆盖,因此在构建文件夹中执行nmake时,同一文件将被复制到some/where/target1
和some/where/target2
。
我考虑使用RENAME
选项将构建文件的临时名称更改为任意名称,但在使用TARGETS
关键字时不允许使用此选项。
你知道如何解决这个问题吗?谢谢!
答案 0 :(得分:2)
我通过将一个CMake文件添加到源目录来解决这个问题,该目录重命名文件,使用目标的输出名称和重命名名称配置该文件,然后添加一个目标属性POST_INSTALL_SCRIPT
配置的cmake文件的路径。
由于缺乏可用于确定某些目录的变量的知识(例如devel文件夹的位置),内部仍有许多内容是硬编码的,整个解决方法看起来有点矫枉过正,很难看,所以,如果你知道更好的策略,请告诉我:)