CMakeLists.txt 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. cmake_minimum_required(VERSION 2.8)
  2. project(qtprotobuf)
  3. set(testgeneration "test_generation")
  4. find_package(Protobuf)
  5. add_subdirectory("src/lib")
  6. add_executable(${PROJECT_NAME} "src/generator/main.cpp" "src/generator/generator.cpp"
  7. "src/generator/classgeneratorbase.cpp")
  8. if (WIN32)
  9. #Needs to set path to protobuf libraries
  10. set(PROTOBUF_INSTALATION_PATH "")
  11. include_directories(${PROTOBUF_INSTALATION_PATH}/include)
  12. set(PROTOBUF_LIBRARIES_PATH ${PROTOBUF_INSTALATION_PATH}/lib)
  13. target_link_libraries(${PROJECT_NAME} "${PROTOBUF_LIBRARIES_PATH}/libprotobuf.lib")
  14. target_link_libraries(${PROJECT_NAME} "${PROTOBUF_LIBRARIES_PATH}/libprotoc.lib")
  15. elseif (UNIX)
  16. target_link_libraries(${PROJECT_NAME} ${Protobuf_LIBRARIES} "-lprotoc")
  17. endif()
  18. if ($ENV{MAKE_TESTS})
  19. set(TESTS_OUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/tests)
  20. file(MAKE_DIRECTORY ${TESTS_OUT_DIR})
  21. add_custom_target(${testgeneration})
  22. add_custom_command(TARGET ${testgeneration} POST_BUILD
  23. COMMAND protoc --plugin=protoc-gen-${PROJECT_NAME}=${CMAKE_BINARY_DIR}/qtprotobuf --qtprotobuf_out=${CMAKE_CURRENT_BINARY_DIR}/tests
  24. simpletest.proto
  25. WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/tests/proto/
  26. COMMENT "Generating test headers"
  27. )
  28. add_dependencies(${testgeneration} ${PROJECT_NAME})
  29. add_subdirectory("tests")
  30. endif()
  31. install(TARGETS ${PROJECT_NAME}
  32. RUNTIME DESTINATION bin)