Browse Source

Add Protobuf as external project if not found

branch 3.7.x is set followed
Viktor Kopp 6 years ago
parent
commit
077f2f185b
2 changed files with 21 additions and 11 deletions
  1. 21 10
      CMakeLists.txt
  2. 0 1
      tests/CMakeLists.txt

+ 21 - 10
CMakeLists.txt

@@ -1,7 +1,17 @@
-cmake_minimum_required(VERSION 2.8)
+cmake_minimum_required(VERSION 3.0)
 
 project(qtprotobuf)
-set(testgeneration "test_generation")
+
+find_package(Protobuf)
+if (NOT Protobuf_FOUND)
+    include(cmake/DownloadProject.cmake)
+    download_project(PROJ                Protobuf
+                     GIT_REPOSITORY      https://github.com/protocolbuffers/protobuf.git
+                     GIT_TAG             3.7.x
+    )
+    set(protobuf_BUILD_TESTS OFF CACHE BOOL "Disable protobuf tests build" FORCE)
+    add_subdirectory("${Protobuf_SOURCE_DIR}/cmake" ${Protobuf_BINARY_DIR})
+endif()
 
 include(cmake/ProjectDefinitions.cmake)
 
@@ -11,18 +21,16 @@ elseif(NOT DEFINED MAKE_TESTS)
     set(MAKE_TESTS ON)
 endif()
 
-find_package(Protobuf)
-
-add_subdirectory("src/lib")
-
-add_executable(${PROJECT_NAME} src/generator/main.cpp
+add_executable(${PROJECT_NAME}
+    src/generator/main.cpp
     src/generator/generator.cpp
     src/generator/classgeneratorbase.cpp
     src/generator/servergenerator.cpp
     src/generator/protobufclassgenerator.cpp
     src/generator/globalenumsgenerator.cpp
     src/generator/servicegeneratorbase.cpp
-    src/generator/templates.cpp)
+    src/generator/templates.cpp
+)
 
 if(WIN32)
     #Needs to set path to protobuf libraries
@@ -32,11 +40,14 @@ if(WIN32)
     set(PROTOBUF_LIBRARIES_PATH ${PROTOBUF_INSTALATION_PATH}/lib)
     target_link_libraries(${PROJECT_NAME} "${PROTOBUF_LIBRARIES_PATH}/libprotobuf.lib")
     target_link_libraries(${PROJECT_NAME} "${PROTOBUF_LIBRARIES_PATH}/libprotoc.lib")
-elseif(UNIX)
-    target_link_libraries(${PROJECT_NAME} ${Protobuf_LIBRARIES} "-lprotoc")
+elseif (UNIX)
+    target_link_libraries(${PROJECT_NAME} libprotoc)
 endif()
 
+add_subdirectory("src/lib")
+
 if(MAKE_TESTS)
+    set(testgeneration "test_generation")
     set(TESTS_OUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/tests)
     file(MAKE_DIRECTORY ${TESTS_OUT_DIR})
     add_custom_target(${testgeneration})

+ 0 - 1
tests/CMakeLists.txt

@@ -7,7 +7,6 @@ if (WIN32)
 elseif (UNIX)
     find_package(GTest)
     if (NOT GTest_FOUND)
-        message(STATUS "Gtest not found. Start downloading...")
         include(../cmake/DownloadProject.cmake)
         download_project(PROJ                GTest
                          GIT_REPOSITORY      https://github.com/google/googletest.git