Сборка проекта VS для гугл-тестов через CMake

475
28 ноября 2016, 18:36

Есть исходный код, есть тест, есть CMakeList.txt. Есть задача: запустить этот тест на AppVeyor.

Вот, что я делаю:

Мой appveyor.yml:

version: '{build}'
os: Visual Studio 2015
configuration:
  - Release
build_script:
  - mkdir build
  - cd build
  - cmake -Dgtest_build_samples=ON ..
  - msbuild gtest-demo.sln

Мой CMakeList.txt

cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
project(gtest-demo)
enable_language(C)
enable_language(CXX)
if(CMAKE_CXX_COMPILER_ID MATCHES GNU)
    set(CMAKE_CXX_FLAGS         "-Wall -Wno-unknown-pragmas -Wno-sign-compare -Woverloaded-virtual -Wwrite-strings -Wno-unused")
    set(CMAKE_CXX_FLAGS_DEBUG   "-O0 -g3")
    set(CMAKE_CXX_FLAGS_RELEASE "-O3")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
endif()
include_directories(
    ${PROJECT_SOURCE_DIR}/src
    )
add_library(
    example
    src/vec2.cpp
    src/obstacle.cpp
    src/map.cpp
    )
set(GOOGLETEST_ROOT googletests/googletest CACHE STRING "Google Test source root")
include_directories(
    ${PROJECT_SOURCE_DIR}/${GOOGLETEST_ROOT}
    ${PROJECT_SOURCE_DIR}/${GOOGLETEST_ROOT}/include
    )
set(GOOGLETEST_SOURCES
    ${PROJECT_SOURCE_DIR}/${GOOGLETEST_ROOT}/src/gtest-all.cc
    ${PROJECT_SOURCE_DIR}/${GOOGLETEST_ROOT}/src/gtest_main.cc
    )

#########################################################
foreach(_source ${GOOGLETEST_SOURCES})
    set_source_files_properties(${_source} PROPERTIES GENERATED 1)
endforeach()
################################################3
add_library(googletest ${GOOGLETEST_SOURCES})
add_executable(
    unit_tests
    tests/main.cpp
    tests/test.cpp
    )
add_dependencies(unit_tests googletest)
target_link_libraries(
    unit_tests
    googletest
    example
    pthread
    )
include(CTest)
enable_testing()
add_test(unit ${PROJECT_BINARY_DIR}/unit_tests)

Вот логи ошибок:

c1xx : fatal error C1083: Cannot open source file: 'C:\projects\gr-cl\googletests\googletest\src\gtest-all.cc': No such file or directory [C:\projects\gr-cl\build\googletest.vcxproj]
  c1xx : fatal error C1083: Cannot open source file: 'C:\projects\gr-cl\googletests\googletest\src\gtest_main.cc': No such file or directory [C:\projects\gr-cl\build\googletest.vcxproj]

Я вроде добавил в дополнительные зависимости инклуд и все остальное. Почему так, и что с этим делать, учитывая, что должно и еще и на линуксовом трэвисе работать?

Спасибо

READ ALSO
Получить информацию о томах

Получить информацию о томах

Как узнать, существует тот или другой том? Например, мне нужно сделать так:

479
Почему не работает функция applyForce?

Почему не работает функция applyForce?

Начал изучать cocos2d-x,но столкнулся с тем, что у меня не работают функции applyForce(), apllyImpulse(), applyTorque()Пытался гуглить, но подобной проблему...

433
Автоматическое разделение на страницы HTML содержимого

Автоматическое разделение на страницы HTML содержимого

Собственно задача такова - отобразить HTML документ в виде одной или нескольких страниц A4 (зависит от документа)Нужно для печати и окна предварительного...

488
Как узнать номер порта по которому подключился клиент к серверу

Как узнать номер порта по которому подключился клиент к серверу

Добрый вечер! Подскажите это узнатьИспользую библиотеки Winsock2 и Ws2tcpip

430