Skip to content
Snippets Groups Projects
Commit dd6f6bd8 authored by Lars Bilke's avatar Lars Bilke Committed by Dmitri Naumov
Browse files

[cmake] Re-introducuce OGS_BUILD_PROCESS_XYZ.

- OGS_BUILD_PROCESSES_XYZ work as before.
- OGS_BUILD_PROCESSES is not a cache variable anymore but beside it
  works as before and also allows for multiple processes.
- OGS_BUILD_PROCESSES takes precedence before (overwrites) BUILD_PROCESSES_XYZ.
parent 8cc6ddac
No related branches found
No related tags found
No related merge requests found
......@@ -272,3 +272,5 @@ include(scripts/cmake/MarkVariablesAdvanced.cmake)
unset(PRE_INSTALL_RUN CACHE)
include(Features)
printEnabledProcesses()
......@@ -28,19 +28,15 @@ set(_processes_list
TwoPhaseFlowWithPrho
)
set(OGS_BUILD_PROCESSES ON
CACHE STRING "Semicolon-separated list of processes to build"
)
# Drop-down (cmake-gui), cycle-through list (ccmake) for easiere interactive
# selection. For enabling multiple selected processes cmake usage via cli is
# required!
set_property(
CACHE OGS_BUILD_PROCESSES PROPERTY STRINGS ON OFF ${_processes_list}
)
foreach(process ${_processes_list})
option(OGS_BUILD_PROCESS_${process} "Build process ${process}" ON)
if(OGS_BUILD_PROCESS_${process})
list(APPEND _enabled_processes ${process})
endif()
endforeach()
if(NOT OGS_BUILD_CLI)
set(OGS_BUILD_PROCESSES OFF "" CACHE STRING "" FORCE)
set(OGS_BUILD_PROCESSES OFF)
message(
STATUS
"ATTENTION: OGS_BUILD_CLI=OFF -> OGS_BUILD_PROCESSES is set to OFF too.\n"
......@@ -49,33 +45,58 @@ if(NOT OGS_BUILD_CLI)
)
endif()
if("${OGS_BUILD_PROCESSES}" STREQUAL "ON" OR "${OGS_BUILD_PROCESSES}" STREQUAL
"OFF"
)
if(OGS_BUILD_PROCESSES)
message(STATUS "All processes enabled.")
set(_enabled_processes ${_processes_list})
if(DEFINED CACHE{OGS_BUILD_PROCESSES})
if("${OGS_BUILD_PROCESSES}" STREQUAL "ON" OR "${OGS_BUILD_PROCESSES}"
STREQUAL "OFF"
)
if(OGS_BUILD_PROCESSES)
set(_enabled_processes ${_processes_list})
else()
unset(_enabled_processes)
endif()
else()
message(STATUS "All processes disabled.")
unset(_enabled_processes)
foreach(process ${OGS_BUILD_PROCESSES})
if(NOT "${process}" IN_LIST _processes_list)
message(
FATAL_ERROR
"${process} given in OGS_BUILD_PROCESSES is "
"not a valid process name! Valid names are ${_processes_list}"
)
endif()
endforeach()
set(_enabled_processes ${OGS_BUILD_PROCESSES})
endif()
else()
foreach(process ${OGS_BUILD_PROCESSES})
if(NOT "${process}" IN_LIST _processes_list)
message(
FATAL_ERROR
"${process} given in OGS_BUILD_PROCESSES is "
"not a valid process name! Valid names are ${_processes_list}"
)
foreach(process ${_processes_list})
if(${process} IN_LIST _enabled_processes)
set(OGS_BUILD_PROCESS_${process} ON CACHE BOOL "" FORCE)
else()
set(OGS_BUILD_PROCESS_${process} OFF CACHE BOOL "" FORCE)
endif()
endforeach()
set(_enabled_processes ${OGS_BUILD_PROCESSES})
message(STATUS "Enabled processes: ${OGS_BUILD_PROCESSES}")
unset(OGS_BUILD_PROCESSES CACHE)
endif()
if("${OGS_BUILD_PROCESSES}" STREQUAL "ON" OR "RichardsComponentTransport"
IN_LIST OGS_BUILD_PROCESSES
OR "ComponentTransport" IN_LIST OGS_BUILD_PROCESSES
if("RichardsComponentTransport" IN_LIST _enabled_processes
OR "ComponentTransport" IN_LIST _enabled_processes
)
set(_build_chemistry_lib ON)
endif()
# Print summary of enabled processes.
function(printEnabledProcesses)
list(LENGTH _enabled_processes num_enabled_processes)
list(LENGTH _processes_list num_processes_list)
if(${num_enabled_processes} EQUAL 0)
message(STATUS "All processes have been disabled!\n")
return()
endif()
if(${num_processes_list} EQUAL ${num_enabled_processes})
message(STATUS "All processes have been enabled.\n")
return()
endif()
message(STATUS "The following processes have been enabled:\n")
foreach(process ${_enabled_processes})
message(" * ${process}")
endforeach()
message("")
endfunction()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment