Adding autobuild generation target
authorRomain Forlot <romain.forlot@iot.bzh>
Tue, 27 Jun 2017 16:59:10 +0000 (18:59 +0200)
committerRomain Forlot <romain.forlot@iot.bzh>
Tue, 27 Jun 2017 16:59:10 +0000 (18:59 +0200)
Change-Id: Idb231d005abbca3eb0a779320ab2382f6ff81108
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
autobuild/agl/autobuild [moved from autobuild/agl/autobuild.mk with 76% similarity]
autobuild/linux/autobuild [moved from autobuild/linux/autobuild.mk with 75% similarity]
cmake/cmake.d/03-extra_targets.cmake

similarity index 76%
rename from autobuild/agl/autobuild.mk
rename to autobuild/agl/autobuild
index 95aacfe..b4c7625 100755 (executable)
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-BUILD_DIR   := build
-PACKAGING_DIR := packaging/wgt
+BUILD_DIR   := ../build
+PACKAGING_DIR := packaging/
 
 VPATH = etc:$(PACKAGING_DIR):$(PACKAGING_DIR)/etc:$(BUILD_DIR)
 
-.PHONY: all clean build mrproper package
+.PHONY: all clean distclean configure build package
 
 all: build
 
 clean:
        @([ -d ${BUILD_DIR} ] && make -C ${BUILD_DIR} clean) || echo Nothing to clean
 
-mrproper:
+distclean:
        @rm -rf ${BUILD_DIR}
 
-build: ${BUILD_DIR}/Makefile
-       @cmake --build ${BUILD_DIR} --target all
+configure: ${BUILD_DIR}/Makefile
+
+build: configure
+       @cmake --build ${BUILD_DIR} ${BUILD_ARGS} --target all
 
 package: build
        @mkdir -p ${BUILD_DIR}/$@/bin
@@ -38,10 +40,10 @@ package: build
        @mkdir -p ${BUILD_DIR}/$@/lib
        @mkdir -p ${BUILD_DIR}/$@/htdocs
        @mkdir -p ${BUILD_DIR}/$@/data
-       @mkdir -p package
+       @mkdir -p ${DEST}
        @cmake --build ${BUILD_DIR} --target widget
-       @cp ${BUILD_DIR}/*wgt package
+       @cp ${BUILD_DIR}/*wgt ${DEST}
 
 ${BUILD_DIR}/Makefile:
        @[ -d ${BUILD_DIR} ] || mkdir -p ${BUILD_DIR}
-       @[ -f ${BUILD_DIR}/Makefile ] || (cd ${BUILD_DIR} && cmake ${CMAKE_OPTS} ..)
+       @[ -f ${BUILD_DIR}/Makefile ] || (cd ${BUILD_DIR} && cmake ${CONFIGURE_ARGS} ..)
similarity index 75%
rename from autobuild/linux/autobuild.mk
rename to autobuild/linux/autobuild
index b6979c4..b4c7625 100755 (executable)
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-BUILD_DIR   := build
-PACKAGING_DIR := packaging/wgt
+BUILD_DIR   := ../build
+PACKAGING_DIR := packaging/
 
 VPATH = etc:$(PACKAGING_DIR):$(PACKAGING_DIR)/etc:$(BUILD_DIR)
 
-.PHONY: all clean build mrproper package
+.PHONY: all clean distclean configure build package
 
 all: build
 
 clean:
        @([ -d ${BUILD_DIR} ] && make -C ${BUILD_DIR} clean) || echo Nothing to clean
 
-mrproper:
+distclean:
        @rm -rf ${BUILD_DIR}
 
-build:  ${BUILD_DIR}/Makefile
-       @cmake --build ${BUILD_DIR} --target all
+configure: ${BUILD_DIR}/Makefile
 
-package: config.xml.in icon.png.in build | $(PKG_FILELIST)
+build: configure
+       @cmake --build ${BUILD_DIR} ${BUILD_ARGS} --target all
+
+package: build
        @mkdir -p ${BUILD_DIR}/$@/bin
        @mkdir -p ${BUILD_DIR}/$@/etc
        @mkdir -p ${BUILD_DIR}/$@/lib
        @mkdir -p ${BUILD_DIR}/$@/htdocs
        @mkdir -p ${BUILD_DIR}/$@/data
-       @mkdir -p package
+       @mkdir -p ${DEST}
        @cmake --build ${BUILD_DIR} --target widget
-       @cp ${BUILD_DIR}/*wgt package
+       @cp ${BUILD_DIR}/*wgt ${DEST}
 
 ${BUILD_DIR}/Makefile:
        @[ -d ${BUILD_DIR} ] || mkdir -p ${BUILD_DIR}
-       @[ -f ${BUILD_DIR}/Makefile ] || (cd ${BUILD_DIR} && cmake ${CMAKE_OPTS} ..)
+       @[ -f ${BUILD_DIR}/Makefile ] || (cd ${BUILD_DIR} && cmake ${CONFIGURE_ARGS} ..)
index 7ff038b..d08c842 100644 (file)
@@ -36,7 +36,9 @@ endif()
 # Add RSYNCTARGET
 remote_targets_populate()
 
-#Archive project
+# ----------------------------------------------------------------------------
+#                                Archive target
+# ----------------------------------------------------------------------------
 add_custom_command(OUTPUT  ${ARCHIVE_OUTPUT}
        DEPENDS ${PROJECT_TARGETS}
        #Create git archive of the main project
@@ -97,6 +99,9 @@ add_custom_command(OUTPUT ${PACKAGING_SPEC_OUTPUT}
        COMMAND ${CMAKE_COMMAND} -DINFILE=${RPM_TEMPLATE_DIR}/rpm-config.spec.in -DOUTFILE=${PACKAGING_SPEC_OUTPUT} -DPROJECT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} -P ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_APP_TEMPLATES_DIR}/cmake/configure_file.cmake
        )
 
+# ----------------------------------------------------------------------------
+#                                Packaging target
+# ----------------------------------------------------------------------------
 #Because the tool "dpkg" is used on the packages db to find the
 #package providing the pkg-cong file ${XPREFIX}.pc, we need
 #to test the OS release package type
@@ -150,3 +155,15 @@ foreach(Var ${Vars})
        endif()
        file(APPEND ${CacheForScript} "set(${Var} \"${VALUE}\")\n")
 endforeach()
+
+# ----------------------------------------------------------------------------
+#                                Autobuild target
+# ----------------------------------------------------------------------------
+
+add_custom_command(OUTPUT ${CMAKE_SOURCE_DIR}/conf.d/autobuild/agl/autobuild
+                       ${CMAKE_SOURCE_DIR}/conf.d/autobuild/linux/autobuild
+       COMMAND rsync -azp ${CMAKE_SOURCE_DIR}/${PROJECT_APP_TEMPLATES_DIR}/autobuild ${CMAKE_SOURCE_DIR}/conf.d
+       )
+
+add_custom_target(autobuild ALL DEPENDS ${CMAKE_SOURCE_DIR}/conf.d/autobuild/agl/autobuild
+                                       ${CMAKE_SOURCE_DIR}/conf.d/autobuild/linux/autobuild)
\ No newline at end of file