我正在构建一个项目,其最终输出是一个静态库,我的基于 CMake 的构建系统包含两个子目录 - Src 和 Tests - 测试构建在其中生成可执行文件并将其链接到构建的库来自 src。
我的问题是,如果要继续没有任何错误,测试构建需要该库已经存在。有没有办法让 CMake 了解在构建测试时该库将存在,还是我必须在单独的步骤中执行这些操作?
我的 CMakeLists.txt 文件如下:
根文件:
cmake_minimum_required( VERSION 2.8 )
project( mylib )
add_subdirectory( Src )
add_subdirectory( Tests )
源文件:
file( GLOB MYLIB_SOURCES *.cpp )
add_library( mylib ${MYLIB_SOURCES} )
测试文件:
file( GLOB MYLIB_TESTS *.cpp )
add_executable( tests ${MYLIB_TESTS} )
find_package( GTest REQUIRED )
find_library( LIB_MYLIB NAMES mylib PATHS "${CMAKE_SOURCE_DIR}/Build/Src" )
include_directories( ../Src )
include_directories( ${GTEST_INCLUDE_DIRECTORIES} )
target_link_libraries( tests ${LIB_MYLIB} ${GTEST_LIBRARIES} pthread )