CMakeLists.txt 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. set(testtarget "qtprotobuf_test")
  2. if (WIN32)
  3. find_package(GTest)
  4. elseif (UNIX)
  5. find_package(GTest REQUIRED)
  6. endif()
  7. find_package(Qt5 COMPONENTS Core REQUIRED)
  8. include_directories(${Qt5Core_INCLUDE_DIRS})
  9. set(CMAKE_INCLUDE_CURRENT_DIR OFF)
  10. set(CMAKE_AUTOMOC OFF)
  11. set(CMAKE_AUTORCC ON)
  12. set(CMAKE_CXX_STANDARD 14)
  13. set(CMAKE_CXX_STANDARD_REQUIRED ON)
  14. if (Qt5_POSITION_INDEPENDENT_CODE)
  15. set(CMAKE_POSITION_INDEPENDENT_CODE ON)
  16. endif()
  17. file(GLOB GENERATED_HEADERS ${CMAKE_CURRENT_BINARY_DIR}/*.h)
  18. file(GLOB GENERATED_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/*.cpp)
  19. #Manual moc_ files generation for qt
  20. list(FILTER GENERATED_SOURCES EXCLUDE REGEX "moc_.*cpp")
  21. QT5_WRAP_CPP(MOC_SOURCES ${GENERATED_HEADERS})
  22. if (WIN32)
  23. #Set path to GTest build libraries
  24. set(GTEST_BOTH_LIBRARIES "")
  25. #Set path to GTest include directory
  26. include_directories(${GTEST_INCLUDE_PATHS} "/")
  27. #Need for generated code
  28. include_directories(${CMAKE_CURRENT_BINARY_DIR})
  29. elseif (UNIX)
  30. include_directories(${GTEST_INCLUDE_DIRS} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/src/lib)
  31. endif()
  32. file(GLOB HEADERS ${TESTS_OUT_DIR})
  33. file(GLOB SOURCES main.cpp
  34. simpletest.cpp
  35. serializationtest.cpp)
  36. file(GLOB PROTOS proto/*.proto)
  37. add_executable(${testtarget} ${SOURCES} ${MOC_SOURCES} ${GENERATED_SOURCES} ${PROTOS})
  38. if (WIN32)
  39. target_link_libraries(${testtarget} "${GTEST_BOTH_LIBRARIES}/gmock_main.lib" "${GTEST_BOTH_LIBRARIES}/gmock.lib" Qt5::Core)
  40. elseif (UNIX)
  41. target_link_libraries(${testtarget} ${GTEST_BOTH_LIBRARIES} qtprotobufsupport Qt5::Core)
  42. endif()
  43. add_dependencies(${testtarget} ${testgeneration})