Browse Source

Fix build dependencies for all subdirs

Alexey Edelev 5 years ago
parent
commit
e1e9c3a9a3
4 changed files with 17 additions and 6 deletions
  1. 2 1
      CMakeLists.txt
  2. 7 2
      src/grpc/CMakeLists.txt
  3. 5 1
      src/protobuf/CMakeLists.txt
  4. 3 2
      tests/CMakeLists.txt

+ 2 - 1
CMakeLists.txt

@@ -18,7 +18,8 @@ endif()
 
 # grpc target requires QT version not less than 5.11
 # earlier versions do not provide required Http2DirectAttribute: https://doc.qt.io/qt-5/whatsnew511.html
-find_package(Qt5 COMPONENTS Core Network REQUIRED)
+find_package(Qt5 COMPONENTS Core REQUIRED)
+
 if (Qt5Core_VERSION VERSION_LESS "5.11.0")
     message(FATAL_ERROR "Required Qt version is 5.11+")
 endif()

+ 7 - 2
src/grpc/CMakeLists.txt

@@ -21,10 +21,15 @@ file(GLOB HEADERS asyncreply.h
     http2channel.h
     abstractclient.h)
 
+find_package(Qt5 COMPONENTS Core Network REQUIRED)
+
 add_library(${GRPC_SUPPORT_LIBRARY_TARGET} ${SOURCES})
 set_target_properties(${GRPC_SUPPORT_LIBRARY_TARGET} PROPERTIES PUBLIC_HEADER "${HEADERS}")
-target_link_libraries(${GRPC_SUPPORT_LIBRARY_TARGET} PRIVATE qtprotobufsupport PUBLIC Qt5::Network)
-
+if(WIN32)
+    target_link_libraries(${GRPC_SUPPORT_LIBRARY_TARGET} PRIVATE qtprotobufsupport PUBLIC Qt5::Network Qt5::Core)
+elseif(UNIX)
+    target_link_libraries(${GRPC_SUPPORT_LIBRARY_TARGET} PRIVATE qtprotobufsupport PUBLIC Qt5::Network)
+endif()
 install(TARGETS ${GRPC_SUPPORT_LIBRARY_TARGET}
     ARCHIVE DESTINATION lib
     PUBLIC_HEADER DESTINATION include)

+ 5 - 1
src/protobuf/CMakeLists.txt

@@ -3,6 +3,8 @@ set(SUPPORT_LIBRARY_TARGET qtprotobufsupport)
 set(CMAKE_INCLUDE_CURRENT_DIR ON)
 set(CMAKE_AUTOMOC ON)
 set(CMAKE_AUTORCC ON)
+set(CMAKE_CXX_STANDARD 14)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
 
 if(Qt5_POSITION_INDEPENDENT_CODE)
   set(CMAKE_POSITION_INDEPENDENT_CODE ON)
@@ -19,9 +21,11 @@ file(GLOB HEADERS
     qtprotobuftypes.h
     qtprotobuf.h)
 
+find_package(Qt5 COMPONENTS Core Qml REQUIRED)
+
 add_library(${SUPPORT_LIBRARY_TARGET} ${SOURCES})
 set_target_properties(${SUPPORT_LIBRARY_TARGET} PROPERTIES PUBLIC_HEADER "${HEADERS}")
-target_link_libraries(${SUPPORT_LIBRARY_TARGET} PUBLIC Qt5::Core)
+target_link_libraries(${SUPPORT_LIBRARY_TARGET} PUBLIC Qt5::Core Qt5::Qml)
 
 install(TARGETS ${SUPPORT_LIBRARY_TARGET}
     ARCHIVE DESTINATION lib

+ 3 - 2
tests/CMakeLists.txt

@@ -19,6 +19,8 @@ add_custom_command(TARGET ${testgeneration}
 
 add_dependencies(${testgeneration} ${PROJECT_NAME})
 
+find_package(Qt5 COMPONENTS Core Network Qml REQUIRED)
+
 ## test sources build
 # policy enables automoc for generated files
 if(${CMAKE_VERSION} VERSION_GREATER "3.10.0")
@@ -202,7 +204,6 @@ if(WIN32)
 
     #Set  path to GTest include directory
     include_directories(${GTEST_INCLUDE_PATHS} "/")
-    find_package(Qt5 COMPONENTS Core Quick Network Qml REQUIRED)
 endif()
 
 file(GLOB SOURCES main.cpp
@@ -217,7 +218,7 @@ set(testtarget "qtprotobuf_test")
 add_executable(${testtarget} ${SOURCES} ${GENERATED_SOURCES})
 
 if(WIN32)
-    target_link_libraries(${testtarget} qtgrpc qtprotobufsupport "${GTEST_BOTH_LIBRARIES}/gmock_main.lib" "${GTEST_BOTH_LIBRARIES}/gmock.lib" Qt5::Quick Qt5::Core Qt5::Qml Qt5::Network)
+    target_link_libraries(${testtarget} qtgrpc qtprotobufsupport "${GTEST_BOTH_LIBRARIES}/gmock_main.lib" "${GTEST_BOTH_LIBRARIES}/gmock.lib" Qt5::Core Qt5::Qml Qt5::Network)
 elseif(UNIX)
     target_link_libraries(${testtarget} gtest qtgrpc qtprotobufsupport)
 endif()