我有一个包含.cpp和.h源文件的自定义目标。像往常一样,这些文件包含其他头文件。我想添加一个目录以便从中查找头文件。
到目前为止,这可能听起来很简单,但是问题在于我正在使用自定义目标和自定义命令来编译和链接程序。实际编译器需要另一种类型的项目文件,与CMake不兼容。
如果我尝试将包含目录添加到当前目标,就会收到以下错误提示:
我认为这是可能的原因是,您可以在我从CMake创建的Visual Studio项目中添加头文件查找路径。但我不想这样做,因为它不是持久性的,我的团队成员也必须这样做。更糟糕的是,我必须向他们解释。(打颤)
到目前为止,这可能听起来很简单,但是问题在于我正在使用自定义目标和自定义命令来编译和链接程序。实际编译器需要另一种类型的项目文件,与CMake不兼容。
如果我尝试将包含目录添加到当前目标,就会收到以下错误提示:
target_include_directories called with non-compliant target type.
我认为这是可能的原因是,您可以在我从CMake创建的Visual Studio项目中添加头文件查找路径。但我不想这样做,因为它不是持久性的,我的团队成员也必须这样做。更糟糕的是,我必须向他们解释。(打颤)
编辑:
回答评论,我正在生成Visual Studio 2017项目文件。我的自定义目标命令只是:
add_custom_target(APP
DEPENDS ${APP_DEPENDENCIES}
SOURCES ${APP_DEPENDENCIES}
)
我的自定义命令是:
add_custom_command(
OUTPUT "${LIB_COMPILE_DIR}/libAPP.a"
DEPENDS ${LIB_COMPILE_SRCS}
COMMAND gbuild -top ${LIB_COMPILE_DIR}/App.gpj
WORKING_DIRECTORY ${LIB_COMPILE_DIR}
)
我知道CMake有一个GHS MULTI生成器,但它还处于实验阶段,无法在我的情况下使用。
include_directories
吗? - Steve Lorimer