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 2018/01/18 17:05:13 UTC

[10/19] celix git commit: CELIX-418: Added packed configuration for docker executables

CELIX-418: Added packed configuration for docker executables


Project: http://git-wip-us.apache.org/repos/asf/celix/repo
Commit: http://git-wip-us.apache.org/repos/asf/celix/commit/6f78b670
Tree: http://git-wip-us.apache.org/repos/asf/celix/tree/6f78b670
Diff: http://git-wip-us.apache.org/repos/asf/celix/diff/6f78b670

Branch: refs/heads/feature/CELIX-417-cmake-refactor
Commit: 6f78b67016d703325cbcee76b5a68fa953dac3b9
Parents: 9ff00c3
Author: Roy Lenferink <le...@gmail.com>
Authored: Wed Jan 3 10:18:42 2018 +0100
Committer: Roy Lenferink <le...@gmail.com>
Committed: Wed Jan 3 10:18:42 2018 +0100

----------------------------------------------------------------------
 cmake/cmake_celix/DockerPackaging.cmake | 28 +++++++++++++++++++++++++++-
 1 file changed, 27 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/celix/blob/6f78b670/cmake/cmake_celix/DockerPackaging.cmake
----------------------------------------------------------------------
diff --git a/cmake/cmake_celix/DockerPackaging.cmake b/cmake/cmake_celix/DockerPackaging.cmake
index 0acd7cc..8b7d8ab 100644
--- a/cmake/cmake_celix/DockerPackaging.cmake
+++ b/cmake/cmake_celix/DockerPackaging.cmake
@@ -95,7 +95,33 @@ function(add_celix_docker)
     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}
+        )
+
+        if (DOCKER_CXX)
+            set(LAUNCHER_STAGE1 "${CMAKE_CURRENT_BINARY_DIR}/${DOCKER_TARGET}-docker-main-stage1.cc")
+        else()
+            set(LAUNCHER_STAGE1 "${CMAKE_CURRENT_BINARY_DIR}/${DOCKER_TARGET}-docker-main-stage1.c")
+        endif()
+
+        file(GENERATE
+                OUTPUT "${LAUNCHER_STAGE1}"
+                CONTENT "#include <celix_launcher.h>
+
+int main(int argc, char *argv[]) {
+    const char * config = \"cosgi.auto.start.1=$<JOIN:$<TARGET_PROPERTY:${DOCKER_TARGET},DOCKER_BUNDLES>, >\\n\\
+$<JOIN:$<TARGET_PROPERTY:${DOCKER_TARGET},DOCKER_PROPERTIES>,\\n\\
+>\";
+
+    properties_pt packedConfig = properties_loadFromString(config);
+
+    return celixLauncher_launchWithArgsAndProps(argc, argv, packedConfig);
+}
+"
+        )
+
+        file(GENERATE
+                OUTPUT "${LAUNCHER_SRC}"
+                INPUT "${LAUNCHER_STAGE1}"
         )
 
         add_executable(${DOCKER_TARGET} ${LAUNCHER_SRC})