From 9270185becb48401bf3b2337d248763df0873107 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Vr=C3=A1til?= Date: Fri, 15 May 2015 16:21:26 +0200 Subject: Ensure proper dependencies between build targets and generate_flatbuffers targets --- CMakeLists.txt | 3 ++- common/CMakeLists.txt | 36 ++++++++++++++++++++--------------- examples/dummyresource/CMakeLists.txt | 2 +- 3 files changed, 24 insertions(+), 17 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bf7f7ae..dcc5224 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,7 +21,7 @@ include(KDEInstallDirs) find_package(Qt5 COMPONENTS REQUIRED Core Widgets Network) find_package(FlatBuffers REQUIRED) -function(generate_flatbuffers) +function(generate_flatbuffers _target) foreach(fbs ${ARGN}) message("making ${CMAKE_CURRENT_BINARY_DIR}/${fbs}_generated.h from ${CMAKE_CURRENT_SOURCE_DIR}/${fbs}.fbs") add_custom_command( @@ -32,6 +32,7 @@ function(generate_flatbuffers) set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/${fbs}_generated.h PROPERTIES GENERATED 1) string(REGEX REPLACE "/" "_" target_name ${fbs}) add_custom_target(generate_bindings${target_name} ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${fbs}_generated.h) + add_dependencies(${_target} generate_bindings${target_name}) endforeach(fbs) endfunction(generate_flatbuffers) diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index f6847a7..19b23c8 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -1,19 +1,6 @@ +include_directories(${CMAKE_CURRENT_BINARY_DIR}) + project(akonadi2common) -generate_flatbuffers( - commands/commandcompletion - commands/createentity - commands/deleteentity - commands/fetchentity - commands/handshake - commands/modifyentity - commands/revisionupdate - commands/synchronize - commands/notification - domain/event - entity - metadata - queuedcommand -) if (STORAGE_unqlite) add_definitions(-DUNQLITE_ENABLE_THREADS -fpermissive) @@ -41,6 +28,25 @@ set(command_SRCS ${storage_SRCS}) add_library(${PROJECT_NAME} SHARED ${command_SRCS}) + +generate_flatbuffers( + ${PROJECT_NAME} + + commands/commandcompletion + commands/createentity + commands/deleteentity + commands/fetchentity + commands/handshake + commands/modifyentity + commands/revisionupdate + commands/synchronize + commands/notification + domain/event + entity + metadata + queuedcommand +) + generate_export_header(${PROJECT_NAME} BASE_NAME Akonadi2Common EXPORT_FILE_NAME akonadi2common_export.h) SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES LINKER_LANGUAGE CXX) qt5_use_modules(${PROJECT_NAME} Network) diff --git a/examples/dummyresource/CMakeLists.txt b/examples/dummyresource/CMakeLists.txt index 5e911d2..36b8e54 100644 --- a/examples/dummyresource/CMakeLists.txt +++ b/examples/dummyresource/CMakeLists.txt @@ -3,9 +3,9 @@ project(akonadi2_resource_dummy) add_definitions(-DQT_PLUGIN) include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) -generate_flatbuffers(dummycalendar) add_library(${PROJECT_NAME} SHARED facade.cpp resourcefactory.cpp domainadaptor.cpp resourcefacade.cpp) +generate_flatbuffers(${PROJECT_NAME} dummycalendar) qt5_use_modules(${PROJECT_NAME} Core Network) target_link_libraries(${PROJECT_NAME} akonadi2common) -- cgit v1.2.3