浏览代码

Build procudure polishing

- Rename variable that contains genrated sources
- Add find_package for Protobuf to config
Alexey Edelev 5 年之前
父节点
当前提交
c4a7fec2ac
共有 4 个文件被更改,包括 14 次插入14 次删除
  1. 3 3
      CMakeLists.txt
  2. 2 2
      cmake/QtProtobufCommon.cmake
  3. 7 7
      cmake/QtProtobufConfig.cmake.in
  4. 2 2
      examples/addressbook/CMakeLists.txt

+ 3 - 3
CMakeLists.txt

@@ -1,6 +1,6 @@
 cmake_minimum_required(VERSION 3.1)
 
-project(qtprotobuf VERSION 0.1)
+project(QtProtobuf VERSION 0.1.0)
 
 find_package(Protobuf)
 
@@ -14,8 +14,8 @@ set(GRPC_LIBRARY_TARGET qtgrpc)
 
 set(TARGET_BIN_DIR ${PREFIX}/bin)
 set(TARGET_LIB_DIR ${PREFIX}/lib)
-set(TARGET_INCLUDE_DIR ${PREFIX}/include/QtProtobuf)
-set(TARGET_CMAKE_DIR ${TARGET_LIB_DIR}/cmake/QtProtobuf)
+set(TARGET_INCLUDE_DIR ${PREFIX}/include/${PROJECT_NAME})
+set(TARGET_CMAKE_DIR ${TARGET_LIB_DIR}/cmake/${PROJECT_NAME})
 
 message("CMAKE_MODULE_PATH: ${CMAKE_SYSTEM_MODULE_PATH}")
 include_directories(${CMAKE_SOURCE_DIR}/src/protobuf ${CMAKE_SOURCE_DIR}/src/grpc)

+ 2 - 2
cmake/QtProtobufCommon.cmake

@@ -59,7 +59,7 @@ function(add_test_target)
 
     add_executable(${add_test_target_TARGET} ${add_test_target_SOURCES})
     set_target_properties(${add_test_target_TARGET} PROPERTIES POSITION_INDEPENDENT_CODE FALSE)
-    add_dependencies(${add_test_target_TARGET} ${QtProtobufGen})
-    target_link_libraries(${add_test_target_TARGET} gtest_main gtest ${QtProtobufGen} ${GRPC_LIBRARY_TARGET} ${PROTOBUF_LIBRARY_TARGET} Qt5::Core Qt5::Qml Qt5::Network)
+    add_dependencies(${add_test_target_TARGET} ${QtProtobuf_GENERATED})
+    target_link_libraries(${add_test_target_TARGET} gtest_main gtest ${QtProtobuf_GENERATED} ${GRPC_LIBRARY_TARGET} ${PROTOBUF_LIBRARY_TARGET} Qt5::Core Qt5::Qml Qt5::Network)
     target_include_directories(${add_test_target_TARGET} PRIVATE ${GENERATED_SOURCES_DIR})
 endfunction(add_test_target)

+ 7 - 7
cmake/QtProtobufConfig.cmake.in

@@ -1,3 +1,4 @@
+find_package(Protobuf)
 # TODO: replace with target_link_directories once released
 link_directories(@TARGET_LIB_DIR@)
 
@@ -15,8 +16,8 @@ function(generate_qtprotobuf)
     set(multiValueArgs GENERATED_HEADERS PROTO_FILES)
     cmake_parse_arguments(generate_qtprotobuf "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
 
-    set(QtProtobufGen ${generate_qtprotobuf_TARGET}_qtprotobuf_gen PARENT_SCOPE)
-    set(QtProtobufGen ${generate_qtprotobuf_TARGET}_qtprotobuf_gen)
+    set(QtProtobuf_GENERATED ${generate_qtprotobuf_TARGET}_qtprotobuf_gen PARENT_SCOPE)
+    set(QtProtobuf_GENERATED ${generate_qtprotobuf_TARGET}_qtprotobuf_gen)
 
     set(GEN_TARGET ${generate_qtprotobuf_TARGET}_qtprotobuf_generate)
 
@@ -56,17 +57,16 @@ function(generate_qtprotobuf)
                 --@GENERATOR_TARGET@_out=${OUT_DIR}
                 ${PROTO_INCLUDES}
                 ${PROTO_FILES}
-            WORKING_DIRECTORY ${PROTO_FILES_DIR}
+            WORKING_DIRECTORY ${OUT_DIR}
             DEPENDS ${PROTO_FILES}
             COMMENT "Generating test headers"
     )
 
-
     qt5_wrap_cpp(MOC_SOURCES ${QTPROTOBUF_GENERATED_HEADERS})
     list(APPEND GENERATED_SOURCES ${MOC_SOURCES})
 
     set_source_files_properties(${QTPROTOBUF_GENERATED_SOURCES} PROPERTIES GENERATED TRUE)
-    add_library(${QtProtobufGen} ${QTPROTOBUF_GENERATED_SOURCES} ${MOC_SOURCES})
-    add_dependencies(${QtProtobufGen} ${GEN_TARGET})
-    target_include_directories(${QtProtobufGen} PRIVATE ${Qt5Core_INCLUDE_DIRS} ${Qt5Qml_INCLUDE_DIRS} ${QtProtobuf_INCLUDE_DIRS} ${QtGrpc_INCLUDE_DIRS} ${OUT_DIR})
+    add_library(${QtProtobuf_GENERATED} ${QTPROTOBUF_GENERATED_SOURCES} ${MOC_SOURCES})
+    add_dependencies(${QtProtobuf_GENERATED} ${GEN_TARGET})
+    target_include_directories(${QtProtobuf_GENERATED} PRIVATE ${Qt5Core_INCLUDE_DIRS} ${Qt5Qml_INCLUDE_DIRS} ${QtProtobuf_INCLUDE_DIRS} ${QtGrpc_INCLUDE_DIRS} ${OUT_DIR})
 endfunction()

+ 2 - 2
examples/addressbook/CMakeLists.txt

@@ -33,6 +33,6 @@ file(GLOB SOURCES main.cpp
 file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/../addressbookserver/cert.pem DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
 
 add_executable(${TARGET} ${SOURCES} resources.qrc)
-add_dependencies(${TARGET} ${QtProtobufGen})
+add_dependencies(${TARGET} ${QtProtobuf_GENERATED})
 target_include_directories(${TARGET} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/generated)
-target_link_libraries(${TARGET} ${GRPC_LIBRARY_TARGET} ${PROTOBUF_LIBRARY_TARGET} ${QtProtobufGen} Qt5::Quick Qt5::Qml)
+target_link_libraries(${TARGET} ${GRPC_LIBRARY_TARGET} ${PROTOBUF_LIBRARY_TARGET} ${QtProtobuf_GENERATED} Qt5::Quick Qt5::Qml)