|
@@ -1,6 +1,7 @@
|
|
|
-set(testgeneration "test_generation")
|
|
|
-set(TESTS_OUT_DIR ${CMAKE_CURRENT_BINARY_DIR})
|
|
|
-file(MAKE_DIRECTORY ${TESTS_OUT_DIR})
|
|
|
+set(PROTO_FILES_DIR ${CMAKE_CURRENT_SOURCE_DIR}/proto/)
|
|
|
+set(GENERATED_SOURCES_DIR ${CMAKE_CURRENT_BINARY_DIR}/generated)
|
|
|
+
|
|
|
+file(MAKE_DIRECTORY ${GENERATED_SOURCES_DIR})
|
|
|
file(GLOB PROTO_FILES ABSOLUTE ${CMAKE_CURRENT_SOURCE_DIR}/proto/*.proto)
|
|
|
## test sources generation
|
|
|
if(WIN32)
|
|
@@ -9,17 +10,15 @@ if(WIN32)
|
|
|
set(Protobuf_PROTOC_EXECUTABLE ${PROTOBUF_INSTALATION_PATH}/bin/protoc.exe)
|
|
|
endif()
|
|
|
|
|
|
-add_custom_target(${testgeneration})
|
|
|
-add_custom_command(TARGET ${testgeneration}
|
|
|
- COMMAND ${Protobuf_PROTOC_EXECUTABLE} --${PROJECT_NAME}_opt=out=${TESTS_OUT_DIR} --plugin=protoc-gen-${PROJECT_NAME}=$<TARGET_FILE:${PROJECT_NAME}> --qtprotobuf_out=${TESTS_OUT_DIR} -I=${CMAKE_CURRENT_SOURCE_DIR}/proto/ ${PROTO_FILES}
|
|
|
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/proto/
|
|
|
+set(test_sources_generation "test_generation")
|
|
|
+add_custom_target(${test_sources_generation})
|
|
|
+add_custom_command(TARGET ${test_sources_generation}
|
|
|
+ COMMAND ${Protobuf_PROTOC_EXECUTABLE} --${PROJECT_NAME}_opt=out=${GENERATED_SOURCES_DIR} --plugin=protoc-gen-${PROJECT_NAME}=$<TARGET_FILE:${PROJECT_NAME}> --qtprotobuf_out=${GENERATED_SOURCES_DIR} -I=${PROTO_FILES_DIR} ${PROTO_FILES}
|
|
|
+ WORKING_DIRECTORY ${PROTO_FILES_DIR}
|
|
|
DEPENDS ${PROTO_FILES}
|
|
|
COMMENT "Generating test headers"
|
|
|
)
|
|
|
-
|
|
|
-add_dependencies(${testgeneration} ${PROJECT_NAME})
|
|
|
-
|
|
|
-find_package(Qt5 COMPONENTS Core Network Qml REQUIRED)
|
|
|
+add_dependencies(${test_sources_generation} ${PROJECT_NAME})
|
|
|
|
|
|
## test sources build
|
|
|
# policy enables automoc for generated files
|
|
@@ -171,10 +170,10 @@ set(EXPECTED_GENERATED_HEADERS
|
|
|
foreach(EXPECTED_GENERATED_HEADER ${EXPECTED_GENERATED_HEADERS})
|
|
|
get_filename_component(GENERATED_HEADER_BASENAME ${EXPECTED_GENERATED_HEADER} NAME_WE)
|
|
|
|
|
|
- list(APPEND GENERATED_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/${GENERATED_HEADER_BASENAME}.cpp)
|
|
|
- list(APPEND GENERATED_HEADERS ${CMAKE_CURRENT_BINARY_DIR}/${GENERATED_HEADER_BASENAME}.h)
|
|
|
+ list(APPEND GENERATED_SOURCES ${GENERATED_SOURCES_DIR}/${GENERATED_HEADER_BASENAME}.cpp)
|
|
|
+ list(APPEND GENERATED_HEADERS ${GENERATED_SOURCES_DIR}/${GENERATED_HEADER_BASENAME}.h)
|
|
|
|
|
|
- set_property(SOURCE ${CMAKE_CURRENT_BINARY_DIR}/${GENERATED_HEADER_BASENAME}.cpp PROPERTY SKIP_AUTOMOC ON)
|
|
|
+ set_property(SOURCE ${GENERATED_SOURCES_DIR}/${GENERATED_HEADER_BASENAME}.cpp PROPERTY SKIP_AUTOMOC ON)
|
|
|
endforeach(EXPECTED_GENERATED_HEADER)
|
|
|
|
|
|
qt5_wrap_cpp(MOC_SOURCES ${GENERATED_HEADERS})
|
|
@@ -182,21 +181,19 @@ list(APPEND GENERATED_SOURCES ${MOC_SOURCES})
|
|
|
|
|
|
# TODO: so far the following cpp files are not generated
|
|
|
list(REMOVE_ITEM GENERATED_SOURCES
|
|
|
- ${CMAKE_CURRENT_BINARY_DIR}/testserviceserver.cpp
|
|
|
- ${CMAKE_CURRENT_BINARY_DIR}/globalenums.cpp
|
|
|
+ ${GENERATED_SOURCES_DIR}/testserviceserver.cpp
|
|
|
+ ${GENERATED_SOURCES_DIR}/globalenums.cpp
|
|
|
)
|
|
|
set_source_files_properties(${GENERATED_SOURCES} PROPERTIES GENERATED TRUE)
|
|
|
|
|
|
# TODO: but their headers should be included in sources for executable to be processed by moc
|
|
|
list(APPEND GENERATED_SOURCES
|
|
|
- ${CMAKE_CURRENT_BINARY_DIR}/testserviceserver.h
|
|
|
- ${CMAKE_CURRENT_BINARY_DIR}/globalenums.h
|
|
|
+ ${GENERATED_SOURCES_DIR}/testserviceserver.h
|
|
|
+ ${GENERATED_SOURCES_DIR}/globalenums.h
|
|
|
)
|
|
|
|
|
|
-set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/globalenums.h PROPERTIES GENERATED TRUE)
|
|
|
-set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/testserviceserver.h PROPERTIES GENERATED TRUE)
|
|
|
-
|
|
|
-include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/src/protobuf ${CMAKE_SOURCE_DIR}/src/grpc)
|
|
|
+set_source_files_properties(${GENERATED_SOURCES_DIR}/globalenums.h PROPERTIES GENERATED TRUE)
|
|
|
+set_source_files_properties(${GENERATED_SOURCES_DIR}/testserviceserver.h PROPERTIES GENERATED TRUE)
|
|
|
|
|
|
if(WIN32)
|
|
|
#Set path to GTest build libraries
|
|
@@ -222,4 +219,6 @@ if(WIN32)
|
|
|
elseif(UNIX)
|
|
|
target_link_libraries(${testtarget} gtest qtgrpc qtprotobufsupport)
|
|
|
endif()
|
|
|
-add_dependencies(${testtarget} ${testgeneration})
|
|
|
+
|
|
|
+target_include_directories(${testtarget} PRIVATE ${GENERATED_SOURCES_DIR})
|
|
|
+add_dependencies(${testtarget} ${test_sources_generation})
|