diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8b22dbf873348f64754cfab489f297415c198c90..f0de6bfcd81f02792a9521b220cd7a30a5695ac2 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,6 +10,7 @@ variables: BUILD_IMAGE_REGISTRY: $CI_REGISTRY/orfeotoolbox/otb-build-env + GIT_CLONE_PATH: $CI_BUILDS_DIR/otb DOCKER_DRIVER: overlay2 GIT_DEPTH: "3" # Disable automatic checkout to let us fetch LFS before diff --git a/CI/configure_option.cmake b/CI/configure_options.cmake similarity index 100% rename from CI/configure_option.cmake rename to CI/configure_options.cmake diff --git a/CI/main_ci.cmake b/CI/main_ci.cmake index eba3829c5017383a253e86a2d197ec0f1b860f1a..052fae88822b9b6d4d20b435f55bfb1090990b33 100644 --- a/CI/main_ci.cmake +++ b/CI/main_ci.cmake @@ -84,7 +84,7 @@ message(STATUS "CI profile : ${ci_profile}") #The following file set the CONFIGURE_OPTIONS variable set (ENABLE_DOXYGEN OFF) set (CONFIGURE_OPTIONS "") -include ( "${CMAKE_CURRENT_LIST_DIR}/configure_option.cmake" ) +include ( "${CMAKE_CURRENT_LIST_DIR}/configure_options.cmake" ) # Sources are already checked out : do nothing for update set(CTEST_GIT_UPDATE_CUSTOM echo No update) diff --git a/CI/main_superbuild.cmake b/CI/main_superbuild.cmake index 757dbb1ad39e55f75e76f157da0ddd15118c74d7..a7ba0f96d7049eb6b10d4227acd33ff6d886f594 100644 --- a/CI/main_superbuild.cmake +++ b/CI/main_superbuild.cmake @@ -17,14 +17,12 @@ # See the License for the specific language governing permissions and # limitations under the License. # +# This script is a prototype for the future CI, it may evolve rapidly in a near future include( "${CMAKE_CURRENT_LIST_DIR}/macros.cmake" ) -# This script is a prototype for the future CI, it may evolve rapidly in a near future 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) ########################################################################### ########################################################################### @@ -56,7 +54,7 @@ set( GIT "${CTEST_GIT_COMMAND}" ) execute_process( COMMAND ${GIT} "clone" "${REMOTE}" "--branch" "${BRANCH_NAME}" "--depth" "1" "superbuild-artifact" - WORKING_DIRECTORY ${CI_PROJ_DIR} + WORKING_DIRECTORY ${OTB_SOURCE_DIR} RESULT_VARIABLE clone_res OUTPUT_VARIABLE clone_out ERROR_VARIABLE clone_err @@ -77,17 +75,17 @@ endif() set (CMAKE_COMMAND "cmake") execute_process( COMMAND ${CMAKE_COMMAND} "-E" "tar" "xf" - "${CI_PROJ_DIR}/superbuild-artifact/SuperBuild_Install.tar" - WORKING_DIRECTORY ${CI_ROOT_DIR} + "${OTB_SOURCE_DIR}/superbuild-artifact/SuperBuild_Install.tar" + WORKING_DIRECTORY ${OTB_SOURCE_DIR} ) -set( XDK_PATH "${CI_ROOT_DIR}/xdk") +set( XDK_PATH "${OTB_SOURCE_DIR}/xdk") if ( DEBUG ) if ( EXISTS "${XDK_PATH}") - message("Tar file exists at ${XDK_PATH}") + message("Xdk folder exists at ${XDK_PATH}") else() - message("Something went wrong no tar file in ${XDK_PATH}") + message("Something went wrong no folder in ${XDK_PATH}") endif() endif() @@ -112,7 +110,7 @@ set ( CTEST_INSTALL_DIRECTORY "${OTB_SOURCE_DIR}/install/" ) set ( PROJECT_SOURCE_DIR "${OTB_SOURCE_DIR}" ) set (CONFIGURE_OPTIONS "") -include ( "${CMAKE_CURRENT_LIST_DIR}/configure_option.cmake" ) +include ( "${CMAKE_CURRENT_LIST_DIR}/configure_options.cmake" ) # SuperBuild case : one more configure option set ( CONFIGURE_OPTIONS "${CONFIGURE_OPTIONS}-DCMAKE_PREFIX_PATH=${XDK_PATH};") @@ -127,10 +125,11 @@ set( GEOTIFF_CSV "${XDK_PATH}/share/epsg_csv" ) set( PROJ_LIB "${XDK_PATH}/share" ) set( CTEST_ENVIRONMENT "PATH=${XDK_PATH}/lib:${XDK_PATH}/bin:$ENV{PATH} -GDAL_DATA= GDAL_DATA -GEOTIFF_CSV= GEOTIFF_CSV -PROJ_LIB= PROJ_LIB ") +# It seems that we do not need that +# GDAL_DATA= GDAL_DATA +# GEOTIFF_CSV= GEOTIFF_CSV +# PROJ_LIB= PROJ_LIB # Sources are already checked out : do nothing for update set(CTEST_GIT_UPDATE_CUSTOM echo No update) diff --git a/CI/prepare_superbuild.cmake b/CI/prepare_superbuild.cmake index 65f420c5e865e43043e544764c599a494457f242..47eec850c1c19af099f0e61ae02b01216a57195e 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 @@ -82,7 +75,7 @@ ctest_update( SOURCE "${OTB_SOURCE_DIR}" ) set(CTEST_BUILD_FLAGS "-j16") set ( SB_CONFIGURE_OPTIONS "") -include( "${CMAKE_CURRENT_LIST_DIR}/../SuperBuild/CI/configure_options.cmake" ) +include( "${CMAKE_CURRENT_LIST_DIR}/sb_configure_options.cmake" ) ctest_configure(BUILD "${CTEST_BINARY_DIRECTORY}" SOURCE "${SUPERBUILD_SOURCE_DIR}" @@ -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,15 +181,16 @@ 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 # -F /dev/null so the agent is not taking a default file ~/.ssh/.. execute_process( COMMAND ${GIT} "config" "core.sshCommand" - "ssh -o StrictHostKeyChecking=no -F /dev/null" + "ssh -o StrictHostKeyChecking=no" WORKING_DIRECTORY ${SB_ARTIFACT_GIT} RESULT_VARIABLE ssh_res OUTPUT_VARIABLE ssh_out @@ -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... diff --git a/SuperBuild/CI/configure_options.cmake b/CI/sb_configure_options.cmake similarity index 100% rename from SuperBuild/CI/configure_options.cmake rename to CI/sb_configure_options.cmake diff --git a/SuperBuild/CMakeLists.txt b/SuperBuild/CMakeLists.txt index 27f42a751b0c8966d6775369645e9c39a43b6b80..a4d361d3aecbe6c35fd496837d27b1db35070653 100644 --- a/SuperBuild/CMakeLists.txt +++ b/SuperBuild/CMakeLists.txt @@ -18,8 +18,6 @@ # limitations under the License. # -## COMMMENT to dirty superbuild artifact. TAG: 1. - cmake_minimum_required(VERSION 3.3.0) project(OTB-SuperBuild)