为了禁止源于我在应用程序中使用的库的编译器警告,target_include_directories(myapp SYSTEM ...)在将它们添加为系统库之前,我手动将它们的目录包含为系统库,target_link_libraries如下所示:
add_executable(myapp myapp.cpp)
target_include_directories(myapp SYSTEM
PRIVATE "extern/lib/include"
)
target_link_libraries(myapp lib::lib)
Run Code Online (Sandbox Code Playgroud)
但是,这种感觉很难受,并且如果lib决定更改包含路径的开发人员也将中断。如果仅使用它就不会有问题,target_link_library但是,当然,它们是通过包含的,-I而我会再次从此包含得到编译器警告。
有没有更优雅,更安全的方式来做到这一点?如果这将是伟大target_link_libraries有一个SYSTEM选项来告诉cmake的将它作为一个系统库。
cmake ×1