From 2b6134b5cf6515ceb096a8d490382642eaf20a9a Mon Sep 17 00:00:00 2001 From: Romain Forlot Date: Fri, 5 May 2017 10:59:12 +0200 Subject: [PATCH] Update CMakeLists files tree and organization Separation between project CMake file and Target CMake files. Adding LINK_FLAGS missing for bindings and following sources files rename operations. Change-Id: I664d20f84fd6a528fb2b057981e3ef9a4243c10d Signed-off-by: Romain Forlot --- templates/html5/CMakeLists.txt | 3 +- templates/html5/app/CMakeLists.txt | 2 +- templates/hybrid-html5/CMakeLists.txt | 3 +- templates/hybrid-html5/binding/CMakeLists.txt | 8 +++-- templates/native/CMakeLists.txt | 30 ++-------------- templates/native/app/CMakeLists.txt | 51 +++++++++++++++++++++++++++ templates/service/CMakeLists.txt | 15 +------- templates/service/binding/CMakeLists.txt | 37 +++++++++++++++++++ 8 files changed, 102 insertions(+), 47 deletions(-) create mode 100644 templates/native/app/CMakeLists.txt create mode 100644 templates/service/binding/CMakeLists.txt diff --git a/templates/html5/CMakeLists.txt b/templates/html5/CMakeLists.txt index bc9558e..bbdab76 100644 --- a/templates/html5/CMakeLists.txt +++ b/templates/html5/CMakeLists.txt @@ -23,4 +23,5 @@ include(${CMAKE_CURRENT_SOURCE_DIR}/etc/macros.cmake) project_subdirs_add() -build_widget() +project_targets_populate() +project_package_build() diff --git a/templates/html5/app/CMakeLists.txt b/templates/html5/app/CMakeLists.txt index 80bb600..625e93c 100644 --- a/templates/html5/app/CMakeLists.txt +++ b/templates/html5/app/CMakeLists.txt @@ -17,7 +17,7 @@ ########################################################################### # Add target to project dependency list -PROJECT_TARGET_ADD(html5-example) +PROJECT_TARGET_ADD(html5-app) # Define project Targets add_custom_command(OUTPUT dist.prod diff --git a/templates/hybrid-html5/CMakeLists.txt b/templates/hybrid-html5/CMakeLists.txt index b153bf0..420f6e1 100644 --- a/templates/hybrid-html5/CMakeLists.txt +++ b/templates/hybrid-html5/CMakeLists.txt @@ -24,4 +24,5 @@ include(${CMAKE_CURRENT_SOURCE_DIR}/etc/macros.cmake) # Add subdir targets project_subdirs_add() -build_widget() +project_targets_populate() +project_package_build() diff --git a/templates/hybrid-html5/binding/CMakeLists.txt b/templates/hybrid-html5/binding/CMakeLists.txt index e07ee5a..6be615f 100644 --- a/templates/hybrid-html5/binding/CMakeLists.txt +++ b/templates/hybrid-html5/binding/CMakeLists.txt @@ -18,13 +18,17 @@ ########################################################################### # Add target to project dependency list -PROJECT_TARGET_ADD(xxxxxx-hybrid-binding) +PROJECT_TARGET_ADD(xxx) # Define project Targets - add_library(${TARGET_NAME} MODULE ${TARGET_NAME}.c) + add_library(${TARGET_NAME} MODULE + ${TARGET_NAME}-hat.c + ${TARGET_NAME}-cb.c + ) # Binder exposes a unique public entry point SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES + PREFIX "afb-" LABELS "BINDING" LINK_FLAGS ${BINDINGS_LINK_FLAG} OUTPUT_NAME ${TARGET_NAME} diff --git a/templates/native/CMakeLists.txt b/templates/native/CMakeLists.txt index c40f0ca..420f6e1 100644 --- a/templates/native/CMakeLists.txt +++ b/templates/native/CMakeLists.txt @@ -21,34 +21,8 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.3) include(${CMAKE_CURRENT_SOURCE_DIR}/etc/config.cmake) include(${CMAKE_CURRENT_SOURCE_DIR}/etc/macros.cmake) -# Add target to project dependency list -PROJECT_TARGET_ADD(native-example) - - # Define project Targets - add_executable(${TARGET_NAME} app/xxxxxx-native-client.c - ) - - link_libraries( - ${CMAKE_THREAD_LIBS_INIT} - ${libafbwsc_LIBRARIES} - ${json-c_LIBRARIES} - ${libsystemd_LIBRARIES} - ) - - # Binder exposes a unique public entry point - SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES - LABELS "EXECUTABLE" - OUTPUT_NAME ${TARGET_NAME}) - - TARGET_INCLUDE_DIRECTORIES(${TARGET_NAME} - PUBLIC ${libafbwsc_INCLUDE_DIRS} - ${json-c_INCLUDE_DIRS} - ${libsystemd_INCLUDE_DIRS}) - - TARGET_LINK_LIBRARIES(${TARGET_NAME} - afbwsc - ${link_libraries}) +# Add subdir targets +project_subdirs_add() project_targets_populate() - project_package_build() diff --git a/templates/native/app/CMakeLists.txt b/templates/native/app/CMakeLists.txt new file mode 100644 index 0000000..5a9fa63 --- /dev/null +++ b/templates/native/app/CMakeLists.txt @@ -0,0 +1,51 @@ +########################################################################### +# Copyright 2015, 2016, 2017 IoT.bzh +# +# author: Fulup Ar Foll +# contrib: Romain Forlot +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +########################################################################### + +# Add target to project dependency list +PROJECT_TARGET_ADD(xxx-native-app) + + # Define project Targets + add_executable(${TARGET_NAME} + ${TARGET_NAME}.c + ) + + link_libraries( + ${CMAKE_THREAD_LIBS_INIT} + ${libafbwsc_LIBRARIES} + ${json-c_LIBRARIES} + ${libsystemd_LIBRARIES} + ) + + # Binder exposes a unique public entry point + SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES + LABELS "EXECUTABLE" + OUTPUT_NAME ${TARGET_NAME}) + + TARGET_INCLUDE_DIRECTORIES(${TARGET_NAME} + PUBLIC ${libafbwsc_INCLUDE_DIRS} + ${json-c_INCLUDE_DIRS} + ${libsystemd_INCLUDE_DIRS}) + + TARGET_LINK_LIBRARIES(${TARGET_NAME} + afbwsc + ${link_libraries}) + + # installation directory + INSTALL(TARGETS ${TARGET_NAME} + RUNTIME DESTINATION ${BINDINGS_INSTALL_DIR}) diff --git a/templates/service/CMakeLists.txt b/templates/service/CMakeLists.txt index a0faf48..bbdab76 100644 --- a/templates/service/CMakeLists.txt +++ b/templates/service/CMakeLists.txt @@ -21,20 +21,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.3) include(${CMAKE_CURRENT_SOURCE_DIR}/etc/config.cmake) include(${CMAKE_CURRENT_SOURCE_DIR}/etc/macros.cmake) -# Add target to project dependency list -PROJECT_TARGET_ADD(service-example) - - # Define project Targets - add_library(${TARGET_NAME} MODULE - binding/xxxxxx-service-binding.c - ) - - # Binder exposes a unique public entry point - SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES - PREFIX "" - LABELS "BINDING" - OUTPUT_NAME ${TARGET_NAME}) +project_subdirs_add() project_targets_populate() - project_package_build() diff --git a/templates/service/binding/CMakeLists.txt b/templates/service/binding/CMakeLists.txt new file mode 100644 index 0000000..bd422b5 --- /dev/null +++ b/templates/service/binding/CMakeLists.txt @@ -0,0 +1,37 @@ +########################################################################### +# Copyright 2015, 2016, 2017 IoT.bzh +# +# author: Romain Forlot +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +########################################################################### + +# Add target to project dependency list +PROJECT_TARGET_ADD(xxx-service) + + # Define project Targets + add_library(${TARGET_NAME} MODULE + ${TARGET_NAME}-hat.c + ${TARGET_NAME}-cb.c + ) + + # Binder exposes a unique public entry point + SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES + PREFIX "afs-" + LABELS "BINDING" + LINK_FLAGS ${BINDINGS_LINK_FLAG} + OUTPUT_NAME ${TARGET_NAME}) + + # Library dependencies (include updates automatically) + TARGET_LINK_LIBRARIES(${TARGET_NAME} + ${link_libraries}) \ No newline at end of file -- 2.16.6