You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@celix.apache.org by pn...@apache.org on 2017/11/16 18:22:18 UTC
celix git commit: CELIX-414: Changes how
celix_add_container/add_deploy handles the LAUNHCER argument.
Repository: celix
Updated Branches:
refs/heads/develop f9dcf5567 -> 78e435b97
CELIX-414: Changes how celix_add_container/add_deploy handles the LAUNHCER argument.
Project: http://git-wip-us.apache.org/repos/asf/celix/repo
Commit: http://git-wip-us.apache.org/repos/asf/celix/commit/78e435b9
Tree: http://git-wip-us.apache.org/repos/asf/celix/tree/78e435b9
Diff: http://git-wip-us.apache.org/repos/asf/celix/diff/78e435b9
Branch: refs/heads/develop
Commit: 78e435b97c31da70b99bd7c202203b97b26a9520
Parents: f9dcf55
Author: Pepijn Noltes <pe...@gmail.com>
Authored: Thu Nov 16 19:22:01 2017 +0100
Committer: Pepijn Noltes <pe...@gmail.com>
Committed: Thu Nov 16 19:22:01 2017 +0100
----------------------------------------------------------------------
cmake/cmake_celix/DeployPackaging.cmake | 53 +++++++++++-----------------
cmake/cmake_celix/main.c.in | 24 +++++++++++++
2 files changed, 45 insertions(+), 32 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/celix/blob/78e435b9/cmake/cmake_celix/DeployPackaging.cmake
----------------------------------------------------------------------
diff --git a/cmake/cmake_celix/DeployPackaging.cmake b/cmake/cmake_celix/DeployPackaging.cmake
index 3ed6ebe..21944c9 100644
--- a/cmake/cmake_celix/DeployPackaging.cmake
+++ b/cmake/cmake_celix/DeployPackaging.cmake
@@ -23,24 +23,8 @@ set_target_properties(containers PROPERTIES "CONTAINER_DEPLOYMENTS" "") #initial
get_directory_property(CLEANFILES ADDITIONAL_MAKE_CLEAN_FILES)
list(APPEND CLEANFILES "${CMAKE_BINARY_DIR}/deploy")
+list(APPEND CLEANFILES "${CMAKE_BINARY_DIR}/celix")
set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${CLEANFILES}")
-
-set(CELIX_MAIN_CONTENT "
-#include \"celix_launcher.h\"
-
-int main(int argc, char *argv[]) {
- return celixLauncher_launchWithArgs(argc, argv);
-}
-")
-file(GENERATE
- OUTPUT "${PROJECT_BINARY_DIR}/celix/gen/main.c"
- CONTENT "${CELIX_MAIN_CONTENT}"
-)
-file(GENERATE
- OUTPUT "${PROJECT_BINARY_DIR}/celix/gen/main.cc"
- CONTENT "${CELIX_MAIN_CONTENT}"
-)
-unset(CELIX_MAIN_CONTENT)
#####
function(add_deploy)
@@ -84,34 +68,39 @@ function(add_celix_container)
set(CONTAINER_ECLIPSE_LAUNCHER "${CONTAINER_LOC}/${CONTAINER_NAME}.launch")
if (CONTAINER_LAUNCHER_SRC)
- set(LAUNCHER_SRC ${CONTAINER_LAUNCHER_SRC})
+ get_filename_component(SRC_FILENAME ${LAUNCHER_SRC} NAME)
+ set(LAUNCHER_SRC "${PROJECT_BINARY_DIR}/celix/gen/${CONTAINER_TARGET}-${SRC_FILENAME}")
+ set(LAUNCHER_ORG "${CONTAINER_LAUNCHER_SRC}")
elseif (CONTAINER_CXX)
- set(LAUNCHER_SRC "${PROJECT_BINARY_DIR}/celix/gen/main.cc")
+ set(LAUNCHER_SRC "${PROJECT_BINARY_DIR}/celix/gen/${CONTAINER_TARGET}-main.cc")
+ set(LAUNCHER_ORG "${CELIX_CMAKE_DIRECTORY}/cmake_celix/main.c.in")
else()
- set(LAUNCHER_SRC "${PROJECT_BINARY_DIR}/celix/gen/main.c")
+ set(LAUNCHER_SRC "${PROJECT_BINARY_DIR}/celix/gen/${CONTAINER_TARGET}-main.c")
+ set(LAUNCHER_ORG "${CELIX_CMAKE_DIRECTORY}/cmake_celix/main.c.in")
endif()
- set(TIMESTAMP_HEADER ${CMAKE_BINARY_DIR}/celix/timestamps/${CONTAINER_TARGET}-timestamp-header.h)
- add_custom_command(OUTPUT ${TIMESTAMP_HEADER}
- COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/celix/timestamps
- COMMAND ${CMAKE_COMMAND} -E touch ${TIMESTAMP_HEADER}
- DEPENDS "$<TARGET_PROPERTY:${CONTAINER_TARGET},CONTAINER_TARGET_DEPS>" ${CONTAINER_FILE_TARGETS}
- COMMENT "Deploying ${CONTAINER_PRINT_NAME} Celix container" VERBATIM
- )
-
if (CONTAINER_LAUNCHER)
- add_custom_target(${CONTAINER_TARGET}
- DEPENDS ${TIMESTAMP_HEADER}
- )
if (IS_ABSOLUTE "${CONTAINER_LAUNCHER}")
set(LAUNCHER "${CONTAINER_LAUNCHER}")
else()
#assuming target
set(LAUNCHER "$<TARGET_FILE:${CONTAINER_LAUNCHER}>")
endif()
+ add_custom_target(${CONTAINER_TARGET}
+ COMMAND ${CMAKE_COMMAND} -E create_symlink ${LAUNCHER} ${CONTAINER_LOC}/${CONTAINER_TARGET}
+ DEPENDS "$<TARGET_PROPERTY:${CONTAINER_TARGET},CONTAINER_TARGET_DEPS>"
+ COMMENT "Deploying ${CONTAINER_PRINT_NAME} Celix container" VERBATIM
+ )
else ()
+ add_custom_command(OUTPUT ${LAUNCHER_SRC}
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/celix/gen
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${LAUNCHER_ORG} ${LAUNCHER_SRC}
+ DEPENDS "$<TARGET_PROPERTY:${CONTAINER_TARGET},CONTAINER_TARGET_DEPS>"
+ COMMENT "Deploying ${CONTAINER_PRINT_NAME} Celix container" VERBATIM
+ )
+
include_directories(${CELIX_INCLUDE_DIRS})
- add_executable(${CONTAINER_TARGET} ${LAUNCHER_SRC} ${TIMESTAMP_HEADER})
+ add_executable(${CONTAINER_TARGET} ${LAUNCHER_SRC})
set_target_properties(${CONTAINER_TARGET} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CONTAINER_LOC})
target_link_libraries(${CONTAINER_TARGET} ${CELIX_FRAMEWORK_LIBRARY} ${CELIX_UTILS_LIBRARY})
set(LAUNCHER "$<TARGET_FILE:${CONTAINER_TARGET}>")
http://git-wip-us.apache.org/repos/asf/celix/blob/78e435b9/cmake/cmake_celix/main.c.in
----------------------------------------------------------------------
diff --git a/cmake/cmake_celix/main.c.in b/cmake/cmake_celix/main.c.in
new file mode 100644
index 0000000..455b7dd
--- /dev/null
+++ b/cmake/cmake_celix/main.c.in
@@ -0,0 +1,24 @@
+/**
+ *Licensed to the Apache Software Foundation (ASF) under one
+ *or more contributor license agreements. See the NOTICE file
+ *distributed with this work for additional information
+ *regarding copyright ownership. The ASF licenses this file
+ *to you 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.
+ */
+
+#include <celix_launcher.h>
+
+int main(int argc, char *argv[]) {
+ return celixLauncher_launchWithArgs(argc, argv);
+}
\ No newline at end of file