summaryrefslogtreecommitdiffstats
path: root/src/cmake/cmake.d/04-extra_targets.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmake/cmake.d/04-extra_targets.cmake')
-rw-r--r--src/cmake/cmake.d/04-extra_targets.cmake69
1 files changed, 69 insertions, 0 deletions
diff --git a/src/cmake/cmake.d/04-extra_targets.cmake b/src/cmake/cmake.d/04-extra_targets.cmake
new file mode 100644
index 0000000..1cde843
--- /dev/null
+++ b/src/cmake/cmake.d/04-extra_targets.cmake
@@ -0,0 +1,69 @@
+###########################################################################
+# Copyright 2015, 2016, 2017 IoT.bzh
+#
+# author: Fulup Ar Foll <fulup@iot.bzh>
+# contrib: Romain Forlot <romain.forlot@iot.bzh>
+#
+# 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.
+###########################################################################
+
+
+#--------------------------------------------------------------------------
+# WARNING:
+# Do not change this cmake template
+# Customise your preferences in "./conf.d/cmake/config.cmake"
+#--------------------------------------------------------------------------
+
+#Generate a cmake cache file usable by cmake script.
+set(CacheForScript ${CMAKE_BINARY_DIR}/CMakeCacheForScript.cmake)
+#Create a tmp cmake file.
+file(WRITE ${CacheForScript} "")
+
+get_cmake_property(Vars VARIABLES)
+foreach(Var ${Vars})
+ if(${Var})
+ #Replace unwanted char.
+ string(REPLACE "\\" "\\\\" VALUE ${${Var}})
+ string(REPLACE "\n" "\\n" VALUE ${VALUE})
+ string(REPLACE "\r" "\\n" VALUE ${VALUE})
+ string(REPLACE "\"" "\\\"" VALUE ${VALUE})
+ endif()
+ file(APPEND ${CacheForScript} "set(${Var} \"${VALUE}\")\n")
+endforeach()
+
+# ----------------------------------------------------------------------------
+# Autobuild target
+# ----------------------------------------------------------------------------
+
+add_custom_command(OUTPUT ${PROJECT_AGL_AUTOBUILD_DIR}/autobuild ${PROJECT_LINUX_AUTOBUILD_DIR}/autobuild
+ DEPENDS ${TEMPLATE_DIR}/autobuild/agl/autobuild.in
+ ${TEMPLATE_DIR}/autobuild/linux/autobuild.in
+
+ COMMAND [ ! -f "${PROJECT_AGL_AUTOBUILD_DIR}/autobuild" ] &&
+ ${CMAKE_COMMAND} -DINFILE=${TEMPLATE_DIR}/autobuild/agl/autobuild.in
+ -DOUTFILE=${PROJECT_AGL_AUTOBUILD_DIR}/autobuild
+ -DPROJECT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}
+ -P ${PROJECT_APP_TEMPLATES_DIR}/cmake/configure_file.cmake &&
+ chmod a+x ${PROJECT_AGL_AUTOBUILD_DIR}/autobuild ||
+ true
+ COMMAND [ ! -f "${PROJECT_LINUX_AUTOBUILD_DIR}/autobuild" ] &&
+ ${CMAKE_COMMAND} -DINFILE=${TEMPLATE_DIR}/autobuild/agl/autobuild.in
+ -DOUTFILE=${PROJECT_LINUX_AUTOBUILD_DIR}/autobuild
+ -DPROJECT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}
+ -P ${PROJECT_APP_TEMPLATES_DIR}/cmake/configure_file.cmake &&
+ chmod a+x ${PROJECT_LINUX_AUTOBUILD_DIR}/autobuild ||
+ true
+)
+
+add_custom_target(autobuild ALL DEPENDS ${PROJECT_AGL_AUTOBUILD_DIR}/autobuild
+ ${PROJECT_LINUX_AUTOBUILD_DIR}/autobuild)