Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 39 additions & 30 deletions circleci.cmake
Original file line number Diff line number Diff line change
@@ -1,45 +1,49 @@
set(CTEST_SITE "CircleCI")

# set_from_env
# ------------
#
# Sets a CMake variable from an environment variable. If the
# environment variable is not defined then the CMake variable is not
# modified. If DEFAULT is specified then if the environment variable
# is not defined the default value is used. Alternatively, if REQUIRED
# is specified then a FATAL_ERROR is generated.
#
# set_from_env( <variable> <environment variable> [REQUIRED|DEFAULT value] )
function(set_from_env var env_var)
if(NOT DEFINED ENV{${env_var}})
message(FATAL_ERROR "Required environment variable \"${env_var}\" not defined.")
if (ARGV2 STREQUAL "REQUIRED")
message(FATAL_ERROR "Required environment variable \"${env_var}\" not defined.")
elseif (ARGV2 STREQUAL "DEFAULT")
set(${var} ${ARGV3} PARENT_SCOPE)
endif()
else()
set(${var} $ENV{${env_var}} PARENT_SCOPE)
endif()
set(${var} $ENV{${env_var}} PARENT_SCOPE)
endfunction()


set_from_env(CTEST_DASHBOARD_ROOT "CTEST_SOURCE_DIRECTORY")
set_from_env(CTEST_DASHBOARD_ROOT "CTEST_DASHBOARD_ROOT")
set_from_env(CTEST_CONFIGURATION_TYPE "CTEST_CONFIGURATION_TYPE")

string(SUBSTRING $ENV{CIRCLE_SHA1} 0 7 commit_sha1)

set(CTEST_BUILD_NAME "CircleCI-$ENV{CIRCLE_BRANCH}-${commit_sha1}")

if( NOT "$ENV{CI_PULL_REQUEST}" STREQUAL "" )
set(CTEST_BUILD_NAME "${CTEST_BUILD_NAME}-pull")
endif()


set(CTEST_CMAKE_GENERATOR "Unix Makefiles")

if (DEFINED ENV{MAKEJ})
set( CTEST_BUILD_FLAGS -j$ENV{MAKEJ})
endif()

set(CTEST_SITE "CircleCI")
set(CTEST_UPDATE_VERSION_ONLY 1)
set( CTEST_TEST_ARGS ${CTEST_TEST_ARGS} PARALLEL_LEVEL 2 )

set_from_env(CTEST_SOURCE_DIRECTORY "CTEST_SOURCE_DIRECTORY" )
set_from_env(CTEST_BINARY_DIRECTORY "CTEST_BINARY_DIRECTORY")
set_from_env(dashboard_model "DASHBOARD_MODEL")

if (DEFINED ENV{CTEST_CONFIGURATION_TYPE})
set(CTEST_CONFIGURATION_TYPE "$ENV{CTEST_CONFIGURATION_TYPE}")
endif()
# Make environment variables to CMake variables for CTest
set_from_env(CTEST_CMAKE_GENERATOR "CTEST_CMAKE_GENERATOR" DEFAULT "Unix Makefiles" )
set_from_env(CTEST_BINARY_DIRECTORY "CTEST_BINARY_DIRECTORY")
set_from_env(CTEST_DASHBOARD_ROOT "CTEST_DASHBOARD_ROOT" REQUIRED)
set_from_env(CTEST_SOURCE_DIRECTORY "CTEST_SOURCE_DIRECTORY" REQUIRED)
set_from_env(CTEST_CONFIGURATION_TYPE "CTEST_CONFIGURATION_TYPE" DEFAULT "Release")

# Legacy support for MAKEJ environment variable
# Please set CTEST_BUILD_FLAGS directly
set_from_env(makej "MAKEJ")
set_from_env(CTEST_BUILD_FLAGS "CTEST_BUILD_FLAGS" DEFAULT ${MAKEJ})

set(CTEST_UPDATE_VERSION_ONLY 1)
# Construct build name based on what is being built
string(SUBSTRING $ENV{CIRCLE_SHA1} 0 7 commit_sha1)
set(CTEST_BUILD_NAME "CircleCI-$ENV{CIRCLE_BRANCH}-${commit_sha1}")

set_from_env(dashboard_git_branch "CIRCLE_BRANCH")
set_from_env(dashboard_model "DASHBOARD_MODEL" DEFAULT "Continuous" )
set(dashboard_loop 0)

list(APPEND CTEST_NOTES_FILES
Expand All @@ -59,3 +63,8 @@ SET (dashboard_cache "


include("${CTEST_SCRIPT_DIRECTORY}/itk_common.cmake")

# itk_common produces a fatal error ( and exits ) if there is a build
# error or warning and also for test failures. If itk_common does not
# terminate execution of this script early, then the build is OK.
return(0)
1 change: 1 addition & 0 deletions itk_common.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -303,6 +303,7 @@ foreach(v
ExternalData_OBJECT_STORES
CTEST_CMAKE_GENERATOR
CTEST_BUILD_CONFIGURATION
CTEST_BUILD_FLAGS
CTEST_GIT_COMMAND
CTEST_CHECKOUT_COMMAND
CTEST_SCRIPT_DIRECTORY
Expand Down