changeset 1:2213af0b61f0

Take advantage of /o in the UseRathaxes CMakeScript + buildbot cmake -E patch
author Louis Opter <louis@lse.epitech.net>
date Sun, 01 Jan 2012 15:56:47 +0100
parents 973e7bc6d13c
children de4bd4784796
files maintainers_fix_buildbot_build_mkdir.patch maintainers_improve_add_rathaxes_executable.patch series
diffstat 3 files changed, 105 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/maintainers_fix_buildbot_build_mkdir.patch	Sun Jan 01 15:56:47 2012 +0100
@@ -0,0 +1,16 @@
+# HG changeset patch
+# Parent 1e3eba44b04af9bee8927b33a455a69a38675c6e
+maintainers: improve the buildbot master configuration to use cmake -E to create the build directory instead of a shell snippet (which would break on Windows)
+
+diff --git a/maintainers/buildbot/master/master-dotcloud.cfg b/maintainers/buildbot/master/master-dotcloud.cfg
+--- a/maintainers/buildbot/master/master-dotcloud.cfg
++++ b/maintainers/buildbot/master/master-dotcloud.cfg
+@@ -64,7 +64,7 @@
+ 
+ fullbuild_factory = BuildFactory()
+ fullbuild_factory.addStep(Mercurial(repourl='https://code.google.com/p/rathaxes', method='clean', branchType='inrepo'))
+-fullbuild_factory.addStep(ShellCommand(command='mkdir build || :', lazylogfiles=True))
++fullbuild_factory.addStep(ShellCommand(command=['cmake', '-E', 'make_directory', 'build'], lazylogfiles=True))
+ # The default is already build/ thus build/build
+ fullbuild_factory.addStep(Configure(command=['cmake', '-DCMAKE_BUILD_TYPE=RELEASE', '..'], workdir='build/build'))
+ fullbuild_factory.addStep(Compile(workdir='build/build'))
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/maintainers_improve_add_rathaxes_executable.patch	Sun Jan 01 15:56:47 2012 +0100
@@ -0,0 +1,87 @@
+# HG changeset patch
+# Parent 4ea23ed6f787e6ef986cc7fee99d2e77c257c737
+maintainers: improve the little CMake Rathaxes library to take advantage of the new `/o' option of rathaxes generate
+
+diff --git a/maintainers/CMakeScripts/UseRathaxes.cmake b/maintainers/CMakeScripts/UseRathaxes.cmake
+--- a/maintainers/CMakeScripts/UseRathaxes.cmake
++++ b/maintainers/CMakeScripts/UseRathaxes.cmake
+@@ -29,7 +29,13 @@
+     SET(${SYSTEM_OUT} ${${SYSTEM_OUT}} PARENT_SCOPE)
+ ENDFUNCTION(_RTX_PARSE_OPTIONS ARGS RTI_OUT BLT_OUT)
+ 
+-FUNCTION(_RTX_GENERATE_BUILD_COMMANDS REGISTER_COMMANDS_OUT RTI_FILES BLT_FILES GENERATE_COMMANDS_OUT SYSTEMS)
++FUNCTION(_RTX_GENERATE_BUILD_COMMANDS
++         OUT_NAME               # [in] Name of the target
++         REGISTER_COMMANDS_OUT  # [out] rathaxes [rti,blt]-registers commands
++         RTI_FILES BLT_FILES    # [in, in] rti and blt files
++         GENERATE_COMMANDS_OUT  # [out] rathaxes generate /o commands
++         OUTPUTS                # [out] name of each generate file
++         SYSTEMS)               # [in] name of each target system
+     FOREACH(RTI ${RTI_FILES})
+         LIST(APPEND ${REGISTER_COMMANDS_OUT}
+              "COMMAND" ${_RTX_CODEWORKER_COMMAND}
+@@ -43,15 +49,25 @@
+     ENDFOREACH(BLT ${BLT_FILES})
+ 
+     FOREACH(OS ${SYSTEMS})
++        LIST(APPEND ${OUTPUTS} "${OUT_NAME}_${OS}.c")
++        # At some point I guess we will use different directories instead of
++        # different file names.
+         LIST(APPEND ${GENERATE_COMMANDS_OUT}
+              COMMAND ${_RTX_CODEWORKER_COMMAND}
+-             "generate" "${OS}"
++             "generate" "/o" "${OUT_NAME}_${OS}.c" "${OS}"
+              "${CMAKE_CURRENT_SOURCE_DIR}/${RTX_FILE}")
+     ENDFOREACH(OS ${SYSTEMS})
+ 
+     SET(${REGISTER_COMMANDS_OUT} ${${REGISTER_COMMANDS_OUT}} PARENT_SCOPE)
+     SET(${GENERATE_COMMANDS_OUT} ${${GENERATE_COMMANDS_OUT}} PARENT_SCOPE)
+-ENDFUNCTION(_RTX_GENERATE_BUILD_COMMANDS REGISTER_COMMANDS_OUT RTI_FILES BLT_FILES GENERATE_COMMANDS_OUT SYSTEMS)
++    SET(${OUTPUTS} ${${OUTPUTS}} PARENT_SCOPE)
++ENDFUNCTION(_RTX_GENERATE_BUILD_COMMANDS
++            OUT_NAME
++            REGISTER_COMMANDS_OUT
++            RTI_FILES BLT_FILES
++            GENERATE_COMMANDS_OUT
++            OUTPUTS
++            SYSTEMS)
+ 
+ # This function will build a Rathaxes target. Usage:
+ #
+@@ -82,26 +98,24 @@
+     # argument (otherwise it would expand as different arguments).
+     _RTX_PARSE_OPTIONS("${ARGV}" RTI_FILES BLT_FILES SYSTEMS)
+ 
+-    _RTX_GENERATE_BUILD_COMMANDS(REGISTER_COMMANDS
++    _RTX_GENERATE_BUILD_COMMANDS(${OUT_NAME}
++                                 REGISTER_COMMANDS
+                                  "${RTI_FILES}"
+                                  "${BLT_FILES}"
+                                  GENERATE_COMMANDS
++                                 OUTPUTS
+                                  "${SYSTEMS}")
+ 
+-    # As soon as we start to write the generation result to files this should
+-    # be translated to an ADD_CUSTOM_COMMAND:
+-    ADD_CUSTOM_TARGET(${OUT_NAME}
+-                      ${_RTX_CODEWORKER_COMMAND} "cache" "clear"
+-                      ${REGISTER_COMMANDS}
+-                      COMMENT "Registering .rti and .blt for the Rathaxes target ${OUT_NAME}"
+-                      VERBATIM
+-                      SOURCES ${RTX_FILE} ${RTI_FILES} ${BLT_FILES})
+-
+     STRING(REPLACE ";" ", " SYSTEMS "${SYSTEMS}")
+-    ADD_CUSTOM_COMMAND(TARGET ${OUT_NAME} POST_BUILD
++    ADD_CUSTOM_COMMAND(OUTPUT ${OUTPUTS}
++                       COMMAND ${_RTX_CODEWORKER_COMMAND} "cache" "clear"
++                       ${REGISTER_COMMANDS}
+                        ${GENERATE_COMMANDS}
+                        COMMENT "Building Rathaxes target ${OUT_NAME} for ${SYSTEMS}"
+-                       VERBATIM)
++                       VERBATIM
++                       DEPENDS ${RTX_FILE} ${RTI_FILES} ${BLT_FILES})
++
++    ADD_CUSTOM_TARGET(${OUT_NAME} ALL DEPENDS ${OUTPUTS})
+ ENDFUNCTION(ADD_RATHAXES_EXECUTABLE OUT_NAME RTX_FILE)
+ 
+ # This function call codeworker + cnorm with the given codeworker script. The
--- a/series	Sun Jan 01 15:31:17 2012 +0100
+++ b/series	Sun Jan 01 15:56:47 2012 +0100
@@ -2,3 +2,5 @@
 maintainers_add_rathaxes_cmake_library.patch
 rathaxes_replace_generate_by_a_cmakelist.patch
 rathaxes_add_the_output_option_to_rathaxes_generate.patch
+maintainers_improve_add_rathaxes_executable.patch
+maintainers_fix_buildbot_build_mkdir.patch