From 7481c760699d8b0c30034782cb2ef0c742ce6657 Mon Sep 17 00:00:00 2001 From: "Roscoe A. Bartlett" Date: Fri, 20 Apr 2018 16:47:33 -0600 Subject: [PATCH 1/5] Remove Xpetra and MueLu Experimental enables (#2462) These options were removed from the EMPIRE configuration of Trilinos in the EM-Plamsa/BulidScripts repo as of commit: commit 285a5a7cad924a4419ede6eccaaefe687f958fa3 Author: Jason M. Gates Date: Thu Mar 29 16:41:22 2018 -0600 Remove Experimental Flags See Trilinos#2467. Therefore, we can hopefully safely assume these are not needed to help protect EMPIRE's usage of Trilinos anymore. --- cmake/std/BasicCiTestingSettings.cmake | 4 ---- 1 file changed, 4 deletions(-) diff --git a/cmake/std/BasicCiTestingSettings.cmake b/cmake/std/BasicCiTestingSettings.cmake index 42685d97d82e..a65f0fd4e417 100644 --- a/cmake/std/BasicCiTestingSettings.cmake +++ b/cmake/std/BasicCiTestingSettings.cmake @@ -35,10 +35,6 @@ TRIL_SET_BOOL_CACHE_VAR_FOR_CI(TPL_ENABLE_SuperLU ON) # problems. TRIL_SET_BOOL_CACHE_VAR_FOR_CI(Trilinos_TRACE_ADD_TEST ON) -# Enable experimental features in Trilinos used by ATDM (#2462) -TRIL_SET_BOOL_CACHE_VAR_FOR_CI(Xpetra_ENABLE_Experimental ON) -TRIL_SET_BOOL_CACHE_VAR_FOR_CI(MueLu_ENABLE_Experimental ON) - # Disable long-failing Piro test until it can be fixed (#826) TRIL_SET_BOOL_CACHE_VAR_FOR_CI(Piro_EpetraSolver_MPI_4_DISABLE ON) From 82477dbed2ae54ede60a1348fbe539234eaa3e84 Mon Sep 17 00:00:00 2001 From: "Roscoe A. Bartlett" Date: Fri, 20 Apr 2018 16:53:51 -0600 Subject: [PATCH 2/5] Just include AssertDefined.cmake in -C mode (#2462) This avoids duplication. --- cmake/std/sems/SEMSDevEnv.cmake | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/cmake/std/sems/SEMSDevEnv.cmake b/cmake/std/sems/SEMSDevEnv.cmake index b4498ff84b79..caa8762bc1e1 100644 --- a/cmake/std/sems/SEMSDevEnv.cmake +++ b/cmake/std/sems/SEMSDevEnv.cmake @@ -7,13 +7,7 @@ # _CONFIGURE_OPTIONS_FILE. IF ("${PROJECT_NAME}" STREQUAL "") SET(PROJECT_NAME Trilinos) - FUNCTION(ASSERT_DEFINED VARS) - FOREACH(VAR ${VARS}) - IF(NOT DEFINED ${VAR}) - MESSAGE(SEND_ERROR "Error, the variable ${VAR} is not defined!") - ENDIF() - ENDFOREACH() - ENDFUNCTION() + INCLUDE("${CMAKE_CURRENT_LIST_DIR}/../../tribits/core/utils/AssertDefined.cmake") ENDIF() # From d3e2db6e282499d4ae0804cb58cb0486de79b4f4 Mon Sep 17 00:00:00 2001 From: "Roscoe A. Bartlett" Date: Fri, 20 Apr 2018 18:20:36 -0600 Subject: [PATCH 3/5] Refactor to use a shared macro for verbose setting of vars (#2462) --- cmake/std/BasicCiTestingSettings.cmake | 45 ++++++++----------- .../std/MpiReleaseDebugSharedPtSettings.cmake | 25 ++++------- cmake/std/SetUtils.cmake | 7 +++ 3 files changed, 35 insertions(+), 42 deletions(-) create mode 100644 cmake/std/SetUtils.cmake diff --git a/cmake/std/BasicCiTestingSettings.cmake b/cmake/std/BasicCiTestingSettings.cmake index a65f0fd4e417..7b7cb5051b7d 100644 --- a/cmake/std/BasicCiTestingSettings.cmake +++ b/cmake/std/BasicCiTestingSettings.cmake @@ -1,42 +1,35 @@ -# Helper function -MACRO(TRIL_SET_BOOL_CACHE_VAR_FOR_CI VAR_NAME VAR_VALUE) - IF ("${${VAR_NAME}}" STREQUAL "") - MESSAGE("-- " "Setting ${VAR_NAME}='${VAR_VALUE}' by default for CI testing") - SET(${VAR_NAME} ${VAR_VALUE} CACHE BOOL - "Set in BasicCiTestingSettings.cmake") - ENDIF() -ENDMACRO() +INCLUDE("${CMAKE_CURRENT_LIST_DIR}/SetUtils.cmake") # Ignore warnings coming from TPL headers (see #1458) -TRIL_SET_BOOL_CACHE_VAR_FOR_CI(${PROJECT_NAME}_TPL_SYSTEM_INCLUDE_DIRS TRUE) +TRIL_SET_BOOL_CACHE_VAR(${PROJECT_NAME}_TPL_SYSTEM_INCLUDE_DIRS TRUE) # Disable a bunch of TPLs that are not to be enabled in CI testing (since # the SEMS env does not have them). -TRIL_SET_BOOL_CACHE_VAR_FOR_CI(TPL_ENABLE_GLM OFF) -TRIL_SET_BOOL_CACHE_VAR_FOR_CI(TPL_ENABLE_Matio OFF) -TRIL_SET_BOOL_CACHE_VAR_FOR_CI(TPL_ENABLE_X11 OFF) +TRIL_SET_BOOL_CACHE_VAR(TPL_ENABLE_GLM OFF) +TRIL_SET_BOOL_CACHE_VAR(TPL_ENABLE_Matio OFF) +TRIL_SET_BOOL_CACHE_VAR(TPL_ENABLE_X11 OFF) # Default enable the TPLs that SEMS provides -TRIL_SET_BOOL_CACHE_VAR_FOR_CI(TPL_ENABLE_Pthread ON) -TRIL_SET_BOOL_CACHE_VAR_FOR_CI(TPL_ENABLE_BLAS ON) -TRIL_SET_BOOL_CACHE_VAR_FOR_CI(TPL_ENABLE_LAPACK ON) -TRIL_SET_BOOL_CACHE_VAR_FOR_CI(TPL_ENABLE_Boost ON) -TRIL_SET_BOOL_CACHE_VAR_FOR_CI(TPL_ENABLE_BoostLib ON) +TRIL_SET_BOOL_CACHE_VAR(TPL_ENABLE_Pthread ON) +TRIL_SET_BOOL_CACHE_VAR(TPL_ENABLE_BLAS ON) +TRIL_SET_BOOL_CACHE_VAR(TPL_ENABLE_LAPACK ON) +TRIL_SET_BOOL_CACHE_VAR(TPL_ENABLE_Boost ON) +TRIL_SET_BOOL_CACHE_VAR(TPL_ENABLE_BoostLib ON) IF (TPL_ENABLE_MPI) - TRIL_SET_BOOL_CACHE_VAR_FOR_CI(TPL_ENABLE_Scotch ON) - TRIL_SET_BOOL_CACHE_VAR_FOR_CI(TPL_ENABLE_ParMETIS ON) + TRIL_SET_BOOL_CACHE_VAR(TPL_ENABLE_Scotch ON) + TRIL_SET_BOOL_CACHE_VAR(TPL_ENABLE_ParMETIS ON) ENDIF() -TRIL_SET_BOOL_CACHE_VAR_FOR_CI(TPL_ENABLE_Zlib ON) -TRIL_SET_BOOL_CACHE_VAR_FOR_CI(TPL_ENABLE_HDF5 ON) -TRIL_SET_BOOL_CACHE_VAR_FOR_CI(TPL_ENABLE_Netcdf ON) -TRIL_SET_BOOL_CACHE_VAR_FOR_CI(TPL_ENABLE_SuperLU ON) +TRIL_SET_BOOL_CACHE_VAR(TPL_ENABLE_Zlib ON) +TRIL_SET_BOOL_CACHE_VAR(TPL_ENABLE_HDF5 ON) +TRIL_SET_BOOL_CACHE_VAR(TPL_ENABLE_Netcdf ON) +TRIL_SET_BOOL_CACHE_VAR(TPL_ENABLE_SuperLU ON) # We want to see tracing of added tests to help in debugging # problems. -TRIL_SET_BOOL_CACHE_VAR_FOR_CI(Trilinos_TRACE_ADD_TEST ON) +TRIL_SET_BOOL_CACHE_VAR(Trilinos_TRACE_ADD_TEST ON) # Disable long-failing Piro test until it can be fixed (#826) -TRIL_SET_BOOL_CACHE_VAR_FOR_CI(Piro_EpetraSolver_MPI_4_DISABLE ON) +TRIL_SET_BOOL_CACHE_VAR(Piro_EpetraSolver_MPI_4_DISABLE ON) # Disable test that was enabled when Scotch TPL was enabled (#2051, #2052) -TRIL_SET_BOOL_CACHE_VAR_FOR_CI(Zoltan2_orderingTestDriverExample_MPI_1_DISABLE ON) +TRIL_SET_BOOL_CACHE_VAR(Zoltan2_orderingTestDriverExample_MPI_1_DISABLE ON) diff --git a/cmake/std/MpiReleaseDebugSharedPtSettings.cmake b/cmake/std/MpiReleaseDebugSharedPtSettings.cmake index 5d29ef8d92eb..14cf268070a9 100644 --- a/cmake/std/MpiReleaseDebugSharedPtSettings.cmake +++ b/cmake/std/MpiReleaseDebugSharedPtSettings.cmake @@ -1,17 +1,10 @@ -# Helper function -MACRO(TRIL_SET_BOOL_CACHE_VAR_FOR_PT_BUILD VAR_NAME VAR_VALUE) - IF ("${${VAR_NAME}}" STREQUAL "") - MESSAGE("-- " "Setting ${VAR_NAME}='${VAR_VALUE}' by default for standard PT CI build") - SET(${VAR_NAME} ${VAR_VALUE} CACHE BOOL - "Set in MpiReleaseDebugSharedPtSettings.cmake") - ENDIF() -ENDMACRO() +INCLUDE("${CMAKE_CURRENT_LIST_DIR}/SetUtils.cmake") -TRIL_SET_BOOL_CACHE_VAR_FOR_PT_BUILD(TPL_ENABLE_MPI ON) -TRIL_SET_BOOL_CACHE_VAR_FOR_PT_BUILD(CMAKE_BUILD_TYPE RELEASE) -TRIL_SET_BOOL_CACHE_VAR_FOR_PT_BUILD(Trilinos_ENABLE_DEBUG ON) -TRIL_SET_BOOL_CACHE_VAR_FOR_PT_BUILD(BUILD_SHARED_LIBS ON) -TRIL_SET_BOOL_CACHE_VAR_FOR_PT_BUILD(Trilinos_ENABLE_DEBUG_SYMBOLS ON) -TRIL_SET_BOOL_CACHE_VAR_FOR_PT_BUILD(Trilinos_ENABLE_EXPLICIT_INSTANTIATION ON) -TRIL_SET_BOOL_CACHE_VAR_FOR_PT_BUILD(Trilinos_ENABLE_SECONDARY_TESTED_CODE OFF) -TRIL_SET_BOOL_CACHE_VAR_FOR_PT_BUILD(Teuchos_ENABLE_DEFAULT_STACKTRACE OFF) +TRIL_SET_BOOL_CACHE_VAR(TPL_ENABLE_MPI ON) +TRIL_SET_BOOL_CACHE_VAR(CMAKE_BUILD_TYPE RELEASE) +TRIL_SET_BOOL_CACHE_VAR(Trilinos_ENABLE_DEBUG ON) +TRIL_SET_BOOL_CACHE_VAR(BUILD_SHARED_LIBS ON) +TRIL_SET_BOOL_CACHE_VAR(Trilinos_ENABLE_DEBUG_SYMBOLS ON) +TRIL_SET_BOOL_CACHE_VAR(Trilinos_ENABLE_EXPLICIT_INSTANTIATION ON) +TRIL_SET_BOOL_CACHE_VAR(Trilinos_ENABLE_SECONDARY_TESTED_CODE OFF) +TRIL_SET_BOOL_CACHE_VAR(Teuchos_ENABLE_DEFAULT_STACKTRACE OFF) diff --git a/cmake/std/SetUtils.cmake b/cmake/std/SetUtils.cmake new file mode 100644 index 000000000000..8eda01f9219b --- /dev/null +++ b/cmake/std/SetUtils.cmake @@ -0,0 +1,7 @@ +MACRO(TRIL_SET_BOOL_CACHE_VAR VAR_NAME VAR_VALUE) + IF ("${${VAR_NAME}}" STREQUAL "") + MESSAGE("-- " "Setting ${VAR_NAME}='${VAR_VALUE}' by default") + SET(${VAR_NAME} ${VAR_VALUE} CACHE BOOL + "Set in ${CMAKE_CURRENT_LIST_FILE}") + ENDIF() +ENDMACRO() From 409206beffb28777867744b26b9dc4240436462f Mon Sep 17 00:00:00 2001 From: "Roscoe A. Bartlett" Date: Fri, 20 Apr 2018 17:01:58 -0600 Subject: [PATCH 4/5] Create single file MpiReleaseDebugSharedPtSerial.cmake read in with -C (#2462) Now this makes it stupid easy to reproduce this particular build. You just do: source /cmake/load_sems_dev_env.sh cmake -C /cmake/std/MpiReleaseDebugSharedPtSerial.cmake \ -DTrilinos_ENABLE_TESTS=ON -DTrilinos_ENABLE_=ON \ --- ...st_linux_mpi_debug_shared_pt_ci.sems.cmake | 2 +- ...inux_mpi_debug_shared_pt_ci_aao.sems.cmake | 2 +- cmake/std/MpiReleaseDebugSharedPtSerial.cmake | 21 +++++++++++++++++++ project-checkin-test-config.py | 16 +------------- 4 files changed, 24 insertions(+), 17 deletions(-) create mode 100644 cmake/std/MpiReleaseDebugSharedPtSerial.cmake diff --git a/cmake/ctest/drivers/sems_ci/ctest_linux_mpi_debug_shared_pt_ci.sems.cmake b/cmake/ctest/drivers/sems_ci/ctest_linux_mpi_debug_shared_pt_ci.sems.cmake index a0f2da812552..0ec136453c18 100644 --- a/cmake/ctest/drivers/sems_ci/ctest_linux_mpi_debug_shared_pt_ci.sems.cmake +++ b/cmake/ctest/drivers/sems_ci/ctest_linux_mpi_debug_shared_pt_ci.sems.cmake @@ -76,7 +76,7 @@ SET(Trilinos_BRANCH develop) SET(EXTRA_EXCLUDE_PACKAGES) SET( EXTRA_CONFIGURE_OPTIONS - "-DTrilinos_CONFIGURE_OPTIONS_FILE:STRING=cmake/std/MpiReleaseDebugSharedPtSettings.cmake,cmake/std/BasicCiTestingSettings.cmake,cmake/std/sems/SEMSDevEnv.cmake" + "-DTrilinos_CONFIGURE_OPTIONS_FILE:STRING=cmake/std/MpiReleaseDebugSharedPtSerial.cmake" "-DTrilinos_TEST_CATEGORIES=BASIC" "-DTrilinos_ENABLE_CONFIGURE_TIMING=ON" ) diff --git a/cmake/ctest/drivers/sems_ci/ctest_linux_mpi_debug_shared_pt_ci_aao.sems.cmake b/cmake/ctest/drivers/sems_ci/ctest_linux_mpi_debug_shared_pt_ci_aao.sems.cmake index fa94f8a9d9b0..e063e76c2163 100644 --- a/cmake/ctest/drivers/sems_ci/ctest_linux_mpi_debug_shared_pt_ci_aao.sems.cmake +++ b/cmake/ctest/drivers/sems_ci/ctest_linux_mpi_debug_shared_pt_ci_aao.sems.cmake @@ -87,7 +87,7 @@ SET(Trilinos_BRANCH develop) SET(EXTRA_EXCLUDE_PACKAGES) SET( EXTRA_CONFIGURE_OPTIONS - "-DTrilinos_CONFIGURE_OPTIONS_FILE:STRING=cmake/std/MpiReleaseDebugSharedPtSettings.cmake,cmake/std/BasicCiTestingSettings.cmake,cmake/std/sems/SEMSDevEnv.cmake" + "-DTrilinos_CONFIGURE_OPTIONS_FILE:STRING=cmake/std/MpiReleaseDebugSharedPtSerial.cmake" "-DTrilinos_TEST_CATEGORIES=BASIC" "-DTrilinos_ENABLE_CONFIGURE_TIMING=ON" ) diff --git a/cmake/std/MpiReleaseDebugSharedPtSerial.cmake b/cmake/std/MpiReleaseDebugSharedPtSerial.cmake new file mode 100644 index 000000000000..6f7c36dbd9cb --- /dev/null +++ b/cmake/std/MpiReleaseDebugSharedPtSerial.cmake @@ -0,0 +1,21 @@ +# This file can be read in using either: +# +# -C /.cmake +# +# or: +# +# -DTrilinos_CONFIGURE_OPTIONS_FILE:STRING=cmake/std/.cmake +# + +# Handle this being passed in with -C option instead of +# _CONFIGURE_OPTIONS_FILE. +IF ("${PROJECT_NAME}" STREQUAL "") + SET(PROJECT_NAME Trilinos) + INCLUDE("${CMAKE_CURRENT_LIST_DIR}/../tribits/core/utils/AssertDefined.cmake") +ENDIF() + +# NOTE: The order of these includes matters! + +include("${CMAKE_CURRENT_LIST_DIR}/MpiReleaseDebugSharedPtSettings.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/BasicCiTestingSettings.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/sems/SEMSDevEnv.cmake") diff --git a/project-checkin-test-config.py b/project-checkin-test-config.py index 175e28ca84d5..708bad901914 100755 --- a/project-checkin-test-config.py +++ b/project-checkin-test-config.py @@ -21,9 +21,6 @@ # Default options that are common to all builds. 'common': [ - # Shared libs safes a ton of disk space and catches more errors - # than static builds. - '-DBUILD_SHARED_LIBS=ON', # For graceful disables, we want to turn this on. '-DTrilinos_DISABLE_ENABLED_FORWARD_DEP_PACKAGES=ON', ], @@ -35,20 +32,9 @@ 'default-builds': [ ('MPI_RELEASE_DEBUG_SHARED_PT', [ - '-DTrilinos_CONFIGURE_OPTIONS_FILE:STRING=cmake/std/MpiReleaseDebugSharedPtSettings.cmake,cmake/std/BasicCiTestingSettings.cmake,cmake/std/sems/SEMSDevEnv.cmake', + '-DTrilinos_CONFIGURE_OPTIONS_FILE:STRING=cmake/std/MpiReleaseDebugSharedPtSerial.cmake', ]), - ## Options for the SERIAL_RELEASE build. - #('SERIAL_RELEASE_SHARED', [ - # '-DTPL_ENABLE_MPI:BOOL=OFF', - # '-DCMAKE_BUILD_TYPE:STRING=RELEASE', - # '-DTrilinos_ENABLE_DEBUG:BOOL=OFF', - # '-DBUILD_SHARED_LIBS=ON', - # '-DTrilinos_ENABLE_EXPLICIT_INSTANTIATION:BOOL=OFF', - # ]), - # ToDo: Should we define serial builds to allow developers to run - # them if they want? - ], # default-builds }, # cmake From 579a77b247a9d45536ad54047c3274600b8aedd8 Mon Sep 17 00:00:00 2001 From: "Roscoe A. Bartlett" Date: Mon, 23 Apr 2018 07:55:37 -0600 Subject: [PATCH 5/5] Add driver for MPI, Release serial Kokkos threading (#2463) This could be used, for example, for the Intel 17 build in #2463. --- cmake/std/MpiReleaseSharedPtSerial.cmake | 29 ++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 cmake/std/MpiReleaseSharedPtSerial.cmake diff --git a/cmake/std/MpiReleaseSharedPtSerial.cmake b/cmake/std/MpiReleaseSharedPtSerial.cmake new file mode 100644 index 000000000000..df2771e2a0d9 --- /dev/null +++ b/cmake/std/MpiReleaseSharedPtSerial.cmake @@ -0,0 +1,29 @@ +# This file can be read in using either: +# +# -C /.cmake +# +# or: +# +# -DTrilinos_CONFIGURE_OPTIONS_FILE:STRING=cmake/std/.cmake +# + +# Handle this being passed in with -C option instead of +# _CONFIGURE_OPTIONS_FILE. +IF ("${PROJECT_NAME}" STREQUAL "") + SET(PROJECT_NAME Trilinos) + INCLUDE("${CMAKE_CURRENT_LIST_DIR}/../tribits/core/utils/AssertDefined.cmake") +ENDIF() + +INCLUDE("${CMAKE_CURRENT_LIST_DIR}/SetUtils.cmake") + +TRIL_SET_BOOL_CACHE_VAR(TPL_ENABLE_MPI ON) +TRIL_SET_BOOL_CACHE_VAR(CMAKE_BUILD_TYPE RELEASE) +TRIL_SET_BOOL_CACHE_VAR(Trilinos_ENABLE_DEBUG OFF) +TRIL_SET_BOOL_CACHE_VAR(BUILD_SHARED_LIBS ON) +TRIL_SET_BOOL_CACHE_VAR(Trilinos_ENABLE_EXPLICIT_INSTANTIATION ON) +TRIL_SET_BOOL_CACHE_VAR(Trilinos_ENABLE_SECONDARY_TESTED_CODE OFF) + +# NOTE: The order of these includes matters! + +include("${CMAKE_CURRENT_LIST_DIR}/BasicCiTestingSettings.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/sems/SEMSDevEnv.cmake")