summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Vrátil <dvratil@redhat.com>2015-05-15 16:21:26 +0200
committerDan Vrátil <dvratil@redhat.com>2015-05-15 16:22:30 +0200
commit9270185becb48401bf3b2337d248763df0873107 (patch)
tree6af8fbd6ebfa7ea4c9c3a4d73df2f319cfd94af1
parent4a55ae0536e46020ca17070155a3223536e36703 (diff)
downloadsink-9270185becb48401bf3b2337d248763df0873107.tar.gz
sink-9270185becb48401bf3b2337d248763df0873107.zip
Ensure proper dependencies between build targets and generate_flatbuffers targets
-rw-r--r--CMakeLists.txt3
-rw-r--r--common/CMakeLists.txt36
-rw-r--r--examples/dummyresource/CMakeLists.txt2
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)
21find_package(Qt5 COMPONENTS REQUIRED Core Widgets Network) 21find_package(Qt5 COMPONENTS REQUIRED Core Widgets Network)
22 22
23find_package(FlatBuffers REQUIRED) 23find_package(FlatBuffers REQUIRED)
24function(generate_flatbuffers) 24function(generate_flatbuffers _target)
25 foreach(fbs ${ARGN}) 25 foreach(fbs ${ARGN})
26 message("making ${CMAKE_CURRENT_BINARY_DIR}/${fbs}_generated.h from ${CMAKE_CURRENT_SOURCE_DIR}/${fbs}.fbs") 26 message("making ${CMAKE_CURRENT_BINARY_DIR}/${fbs}_generated.h from ${CMAKE_CURRENT_SOURCE_DIR}/${fbs}.fbs")
27 add_custom_command( 27 add_custom_command(
@@ -32,6 +32,7 @@ function(generate_flatbuffers)
32 set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/${fbs}_generated.h PROPERTIES GENERATED 1) 32 set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/${fbs}_generated.h PROPERTIES GENERATED 1)
33 string(REGEX REPLACE "/" "_" target_name ${fbs}) 33 string(REGEX REPLACE "/" "_" target_name ${fbs})
34 add_custom_target(generate_bindings${target_name} ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${fbs}_generated.h) 34 add_custom_target(generate_bindings${target_name} ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${fbs}_generated.h)
35 add_dependencies(${_target} generate_bindings${target_name})
35 endforeach(fbs) 36 endforeach(fbs)
36endfunction(generate_flatbuffers) 37endfunction(generate_flatbuffers)
37 38
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 @@
1include_directories(${CMAKE_CURRENT_BINARY_DIR})
2
1project(akonadi2common) 3project(akonadi2common)
2generate_flatbuffers(
3 commands/commandcompletion
4 commands/createentity
5 commands/deleteentity
6 commands/fetchentity
7 commands/handshake
8 commands/modifyentity
9 commands/revisionupdate
10 commands/synchronize
11 commands/notification
12 domain/event
13 entity
14 metadata
15 queuedcommand
16)
17 4
18if (STORAGE_unqlite) 5if (STORAGE_unqlite)
19 add_definitions(-DUNQLITE_ENABLE_THREADS -fpermissive) 6 add_definitions(-DUNQLITE_ENABLE_THREADS -fpermissive)
@@ -41,6 +28,25 @@ set(command_SRCS
41 ${storage_SRCS}) 28 ${storage_SRCS})
42 29
43add_library(${PROJECT_NAME} SHARED ${command_SRCS}) 30add_library(${PROJECT_NAME} SHARED ${command_SRCS})
31
32generate_flatbuffers(
33 ${PROJECT_NAME}
34
35 commands/commandcompletion
36 commands/createentity
37 commands/deleteentity
38 commands/fetchentity
39 commands/handshake
40 commands/modifyentity
41 commands/revisionupdate
42 commands/synchronize
43 commands/notification
44 domain/event
45 entity
46 metadata
47 queuedcommand
48)
49
44generate_export_header(${PROJECT_NAME} BASE_NAME Akonadi2Common EXPORT_FILE_NAME akonadi2common_export.h) 50generate_export_header(${PROJECT_NAME} BASE_NAME Akonadi2Common EXPORT_FILE_NAME akonadi2common_export.h)
45SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES LINKER_LANGUAGE CXX) 51SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES LINKER_LANGUAGE CXX)
46qt5_use_modules(${PROJECT_NAME} Network) 52qt5_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)
3add_definitions(-DQT_PLUGIN) 3add_definitions(-DQT_PLUGIN)
4include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) 4include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
5 5
6generate_flatbuffers(dummycalendar)
7 6
8add_library(${PROJECT_NAME} SHARED facade.cpp resourcefactory.cpp domainadaptor.cpp resourcefacade.cpp) 7add_library(${PROJECT_NAME} SHARED facade.cpp resourcefactory.cpp domainadaptor.cpp resourcefacade.cpp)
8generate_flatbuffers(${PROJECT_NAME} dummycalendar)
9qt5_use_modules(${PROJECT_NAME} Core Network) 9qt5_use_modules(${PROJECT_NAME} Core Network)
10target_link_libraries(${PROJECT_NAME} akonadi2common) 10target_link_libraries(${PROJECT_NAME} akonadi2common)
11 11