|
@@ -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})
|