diff --git a/CI/prepare_superbuild.cmake b/CI/prepare_superbuild.cmake index 65f420c5e865e43043e544764c599a494457f242..7a1bd0dc2d97588931c0437ec5efec7142c78f9f 100644 --- a/CI/prepare_superbuild.cmake +++ b/CI/prepare_superbuild.cmake @@ -23,13 +23,6 @@ include( "${CMAKE_CURRENT_LIST_DIR}/macros.cmake" ) set (ENV{LANG} "C") # Only ascii output get_filename_component(OTB_SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR} DIRECTORY) -get_filename_component(CI_PROJ_DIR ${OTB_SOURCE_DIR} DIRECTORY) -get_filename_component(CI_ROOT_DIR ${CI_PROJ_DIR} DIRECTORY) - -# In GitLab we have : -# OTB_SOURCE_DIR=/builds/{project_dir}/otb -# CI_PROJ_DIR=/builds/{project_dir} -# CI_ROOT_DIR=/builds set ( DEBUG "1" ) @@ -52,7 +45,7 @@ set_dash_build_name() # This is platform dependent, and the next step (build) also # depends on that, as some paths are hardcoded # This can be fixed with a packaging of OTB_DEPENDS -set (CTEST_INSTALL_DIRECTORY "${CI_ROOT_DIR}/xdk/") +set (CTEST_INSTALL_DIRECTORY "${OTB_SOURCE_DIR}/xdk/") # HACK # This is needed because when using return() function ctest is trying @@ -116,8 +109,7 @@ foreach(sb_file ${sb_file_list}) file(APPEND ${SB_TXT} "${sb_file}${CONTENTS}") endforeach(sb_file) file(READ "${CTEST_BINARY_DIRECTORY}/CMakeCache.txt" CMAKE_ORIG) -string(REPLACE "${CI_PROJ_DIR}" "" CMAKE_UNIFIED ${CMAKE_ORIG}) -file(APPEND ${SB_TXT} "CMakeCache.txt${CMAKE_UNIFIED}") +file(APPEND ${SB_TXT} "CMakeCache.txt${CMAKE_ORIG}") file ( MD5 "${SB_TXT}" SB_MD5) message ( "SB_MD5 = ${SB_MD5}" ) file (REMOVE ${SB_TXT}) @@ -180,7 +172,6 @@ ctest_submit() # TODO right now we rely on ctest_build to know whether there has been an error # in build, whereas SuperBuild does not necessarily return an error if something #Â goes wrong -set ( SB_ARTIFACT_GIT "${CI_PROJ_DIR}/superbuild-artifact" ) # REPOSITORY_GIT_URL and REMOTE whould be the same. Right now there are # different because one is https and one is ssh. Both should be ssh. @@ -190,8 +181,9 @@ set( REPOSITORY_GIT_URL "git@gitlab.orfeo-toolbox.org:gbonnefille/superbuild-art execute_process( COMMAND ${GIT} "clone" "${REPOSITORY_GIT_URL}" "--branch" "master" "--depth" "1" "superbuild-artifact" - WORKING_DIRECTORY "${CI_PROJ_DIR}" + WORKING_DIRECTORY "${OTB_SOURCE_DIR}" ) +set ( SB_ARTIFACT_GIT "${OTB_SOURCE_DIR}/superbuild-artifact" ) # setting up the repo # StrictHostKeyChecking so we don't have to add the host as a known key @@ -260,24 +252,15 @@ endif() set ( SB_TAR_NAME "SuperBuild_Install.tar" ) -# create the tar -# We need to create tar in its directory to avoid weird name in file -# "tar: Removing leading `../../' from member names" -# WARNING -# We are creating a tar containing xdk/.., so when extracting the archive in -# an other environment the output file will be xdk... Obvious isn't it? -# Well... Not for everyone... +# Creating the tar # May be for easier maintainability the tar name should be the same as the # file inside. execute_process( - COMMAND ${CMAKE_COMMAND} "-E" "tar" "cf" "${SB_TAR_NAME}" + COMMAND ${CMAKE_COMMAND} "-E" "tar" "cf" "${SB_ARTIFACT_GIT}/${SB_TAR_NAME}" -- "${CTEST_INSTALL_DIRECTORY}" - WORKING_DIRECTORY ${CI_ROOT_DIR} + WORKING_DIRECTORY ${OTB_SOURCE_DIR} ) -# We need to copy the tar file, as it is on a different partition in the gitlab -# context -file ( COPY "${CI_ROOT_DIR}/${SB_TAR_NAME}" DESTINATION "${SB_ARTIFACT_GIT}") # In a near futur it might be nice to clean up the mess we made...