我写了一个使用 doctest 的小库。在 CMakeLists.txt 我有:
...
add_library(my_lib STATIC ${SRCS} $<TARGET_OBJECTS:common_files>)
add_executable(tests ${SRCS} $<TARGET_OBJECTS:common_files>)
target_compile_definitions(my_lib PRIVATE -DDOCTEST_CONFIG_DISABLE)
...
Run Code Online (Sandbox Code Playgroud)
在项目中通过 使用库时add_subdirectory,库和测试可执行文件在我只需要库时构建。
当包含 CMakeLists.txt 作为子目录时,我可以做些什么来防止构建测试,或者是否有更好的方法来实现类似的结果?
我正在使用 Ninja 来构建项目。
我可以使用ninja -t targets命令行检查目标并仅构建我想要的目标,但是我可以让 CMake 从all目标中排除子目录中的测试吗?
使用 vcpkg 安装软件包后,将显示帮助文本,例如...
The package fmt:x64-windows provides CMake targets:
find_package(fmt CONFIG REQUIRED)
target_link_libraries(main PRIVATE fmt::fmt fmt::fmt-header-only)
Run Code Online (Sandbox Code Playgroud)
...用于将它们与 CMake 一起使用所需的不同说明。如果您将来想回忆它而没有写下来,您从哪里获得这些信息?一些图书馆有比上述更多的指令。