mirror of
https://github.com/OPM/ResInsight.git
synced 2026-10-24 22:27:55 -05:00
Replace the rips.taskmaestro_helper introspect subcommand with `python -m taskmaestro workflow describe --json`. RimWorkflowDescribeTools converts the describe output (JSON schemas, depends_on, config_values) into the workflow graph used by the Workflow UI. This also adds support for collect dependencies and maps rips.Reservoir to EclipseCase pickers.
523 lines
20 KiB
CMake
523 lines
20 KiB
CMake
project(ApplicationLibCode)
|
|
|
|
# set packaging dir
|
|
if(NOT CPACK_PACKAGE_DIRECTORY)
|
|
set(CPACK_PACKAGE_DIRECTORY ${CMAKE_BINARY_DIR}/packages)
|
|
endif()
|
|
|
|
if(RESINSIGHT_ENABLE_UNITY_BUILD)
|
|
message("Cmake Unity build is enabled on : ${PROJECT_NAME}")
|
|
set(CMAKE_UNITY_BUILD true)
|
|
endif()
|
|
|
|
if(CMAKE_COMPILER_IS_GNUCXX)
|
|
set(CMAKE_CXX_FLAGS
|
|
"${CMAKE_CXX_FLAGS} -Wno-deprecated -Wno-deprecated-declarations"
|
|
)
|
|
endif()
|
|
|
|
# Open GL
|
|
find_package(OpenGL)
|
|
|
|
find_package(
|
|
Qt6
|
|
COMPONENTS Core
|
|
Gui
|
|
OpenGL
|
|
Network
|
|
NetworkAuth
|
|
Widgets
|
|
Xml
|
|
Concurrent
|
|
PrintSupport
|
|
Svg
|
|
Sql
|
|
)
|
|
set(QT_LIBRARIES
|
|
Qt6::Core
|
|
Qt6::Gui
|
|
Qt6::OpenGL
|
|
Qt6::Network
|
|
Qt6::NetworkAuth
|
|
Qt6::Widgets
|
|
Qt6::Xml
|
|
Qt6::Concurrent
|
|
Qt6::PrintSupport
|
|
Qt6::Svg
|
|
Qt6::Sql
|
|
)
|
|
qt_standard_project_setup()
|
|
|
|
if(RESINSIGHT_GRPC_PYTHON_EXECUTABLE)
|
|
set(Python3_EXECUTABLE ${RESINSIGHT_GRPC_PYTHON_EXECUTABLE})
|
|
find_package(Python3)
|
|
message(STATUS "Using Python Version: ${Python3_VERSION}")
|
|
endif()
|
|
|
|
# NB: The generated file is written to Cmake binary folder to avoid source tree
|
|
# pollution This folder is added to include_directories
|
|
configure_file(
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Adm/RiaVersionInfo.h.cmake
|
|
${CMAKE_BINARY_DIR}/Generated/RiaVersionInfo.h
|
|
)
|
|
|
|
configure_file(
|
|
${CMAKE_CURRENT_LIST_DIR}/RiuThemesDirectory.h.cmake
|
|
${CMAKE_BINARY_DIR}/Generated/RiuThemesDirectory.h
|
|
)
|
|
if(MSVC)
|
|
# Avoid Qt warnings about macro redefinitions for math constants
|
|
add_definitions(-D_USE_MATH_DEFINES)
|
|
endif()
|
|
|
|
find_package(Eigen3 REQUIRED)
|
|
|
|
# ##############################################################################
|
|
# Defining all the source (and header) files
|
|
# ##############################################################################
|
|
|
|
list(
|
|
APPEND
|
|
REFERENCED_CMAKE_FILES
|
|
Application/CMakeLists_files.cmake
|
|
Application/Tools/CMakeLists_files.cmake
|
|
Application/Tools/WellPathTools/CMakeLists_files.cmake
|
|
Application/Tools/Cloud/CMakeLists_files.cmake
|
|
Application/Tools/Summary/CMakeLists_files.cmake
|
|
Application/Tools/KeyValueStore/CMakeLists_files.cmake
|
|
Application/Tools/Ensemble/CMakeLists_files.cmake
|
|
ReservoirDataModel/CMakeLists_files.cmake
|
|
ReservoirDataModel/CMakeLists_filesNotToUnitTest.cmake
|
|
ReservoirDataModel/Completions/CMakeLists_files.cmake
|
|
ReservoirDataModel/SimulationFile/CMakeLists_files.cmake
|
|
ReservoirDataModel/CompletionsMsw/CMakeLists_files.cmake
|
|
ReservoirDataModel/ContourMap/CMakeLists_files.cmake
|
|
ReservoirDataModel/ResultAccessors/CMakeLists_files.cmake
|
|
ReservoirDataModel/ResultCalculators/CMakeLists_files.cmake
|
|
ReservoirDataModel/Well/CMakeLists_files.cmake
|
|
ReservoirDataModel/Surface/CMakeLists_files.cmake
|
|
FileInterface/CMakeLists_files.cmake
|
|
ProjectDataModel/CMakeLists_files.cmake
|
|
ProjectDataModel/AnalysisPlots/CMakeLists_files.cmake
|
|
ProjectDataModel/Appearance/CMakeLists_files.cmake
|
|
ProjectDataModel/CorrelationPlots/CMakeLists_files.cmake
|
|
ProjectDataModel/ContourMap/CMakeLists_files.cmake
|
|
ProjectDataModel/Cloud/CMakeLists_files.cmake
|
|
ProjectDataModel/EnsembleFileSet/CMakeLists_files.cmake
|
|
ProjectDataModel/Faults/CMakeLists_files.cmake
|
|
ProjectDataModel/GeoMech/CMakeLists_files.cmake
|
|
ProjectDataModel/GridCrossPlots/CMakeLists_files.cmake
|
|
ProjectDataModel/GridCrossPlots/CellFilters/CMakeLists_files.cmake
|
|
ProjectDataModel/Jobs/CMakeLists_files.cmake
|
|
ProjectDataModel/Summary/CMakeLists_files.cmake
|
|
ProjectDataModel/Summary/Cloud/CMakeLists_files.cmake
|
|
ProjectDataModel/Summary/Ensemble/CMakeLists_files.cmake
|
|
ProjectDataModel/Flow/CMakeLists_files.cmake
|
|
ProjectDataModel/Formations/CMakeLists_files.cmake
|
|
ProjectDataModel/Annotations/CMakeLists_files.cmake
|
|
ProjectDataModel/Completions/CMakeLists_files.cmake
|
|
ProjectDataModel/Measurement/CMakeLists_files.cmake
|
|
ProjectDataModel/Parameters/CMakeLists_files.cmake
|
|
ProjectDataModel/PlotTemplates/CMakeLists_files.cmake
|
|
ProjectDataModel/StimPlanModel/CMakeLists_files.cmake
|
|
ProjectDataModel/Streamlines/CMakeLists_files.cmake
|
|
ProjectDataModel/Seismic/CMakeLists_files.cmake
|
|
ProjectDataModel/Surfaces/CMakeLists_files.cmake
|
|
ProjectDataModel/Intersections/CMakeLists_files.cmake
|
|
ProjectDataModel/CellFilters/CMakeLists_files.cmake
|
|
ProjectDataModel/ProcessControl/CMakeLists_files.cmake
|
|
ProjectDataModel/Polygons/CMakeLists_files.cmake
|
|
ProjectDataModel/Polygons/Cloud/CMakeLists_files.cmake
|
|
ProjectDataModel/Workflow/CMakeLists_files.cmake
|
|
ProjectDataModel/WellLog/CMakeLists_files.cmake
|
|
ProjectDataModel/WellLog/WellLogTrack/CMakeLists_files.cmake
|
|
ProjectDataModel/WellMeasurement/CMakeLists_files.cmake
|
|
ProjectDataModel/WellPath/CMakeLists_files.cmake
|
|
ProjectDataModel/WellEvents/CMakeLists_files.cmake
|
|
ProjectDataModel/Tools/CMakeLists_files.cmake
|
|
ProjectDataModelCommands/CMakeLists_files.cmake
|
|
ProjectDataModelCommands/CommandRouter/CMakeLists_files.cmake
|
|
ProjectDataModel/VerticalFlowPerformance/CMakeLists_files.cmake
|
|
ProjectDataModel/QuickAccess/CMakeLists_files.cmake
|
|
ProjectDataModel/Histogram/CMakeLists_files.cmake
|
|
GeoMech/GeoMechVisualization/CMakeLists_files.cmake
|
|
ModelVisualization/CMakeLists_files.cmake
|
|
ModelVisualization/Faults/CMakeLists_files.cmake
|
|
ModelVisualization/GridBox/CMakeLists_files.cmake
|
|
ModelVisualization/Intersections/CMakeLists_files.cmake
|
|
ModelVisualization/Seismic/CMakeLists_files.cmake
|
|
ModelVisualization/Streamlines/CMakeLists_files.cmake
|
|
ModelVisualization/Surfaces/CMakeLists_files.cmake
|
|
ModelVisualization/WindowEdgeAxesOverlayItem/CMakeLists_files.cmake
|
|
UserInterface/CMakeLists_files.cmake
|
|
UserInterface/AnalysisPlots/CMakeLists_files.cmake
|
|
CommandFileInterface/CMakeLists_files.cmake
|
|
CommandFileInterface/Core/CMakeLists_files.cmake
|
|
SocketInterface/CMakeLists_files.cmake
|
|
)
|
|
|
|
# Include source file lists from *.cmake files
|
|
foreach(referencedfile ${REFERENCED_CMAKE_FILES})
|
|
include(${referencedfile})
|
|
endforeach(referencedfile)
|
|
|
|
list(APPEND CPP_SOURCES ${CODE_SOURCE_FILES})
|
|
|
|
# ##############################################################################
|
|
# Sub-directory projects
|
|
# ##############################################################################
|
|
|
|
#
|
|
# Odb api
|
|
#
|
|
# NOTE: USE_ODB_API is defined further down via target_compile_definitions().
|
|
|
|
#
|
|
# OpenVDS
|
|
#
|
|
if(RESINSIGHT_ENABLE_OPENVDS)
|
|
message(STATUS "OpenVDS support enabled")
|
|
|
|
set(OPENVDS_FILES FileInterface/RifOpenVDSReader.cpp
|
|
FileInterface/RifOpenVDSReader.h
|
|
)
|
|
list(APPEND CPP_SOURCES ${OPENVDS_FILES})
|
|
|
|
# Scope USE_OPENVDS to the files that need it, to avoid a full rebuild on
|
|
# toggle.
|
|
set_source_files_properties(
|
|
${OPENVDS_FILES}
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/Seismic/RimSeismicData.cpp
|
|
PROPERTIES COMPILE_DEFINITIONS USE_OPENVDS
|
|
)
|
|
|
|
# Only RifOpenVDSReader.cpp includes the OpenVDS SDK headers, so scope the
|
|
# include dir to just that file to avoid a full rebuild on toggle.
|
|
set_source_files_properties(
|
|
${CMAKE_CURRENT_SOURCE_DIR}/FileInterface/RifOpenVDSReader.cpp
|
|
PROPERTIES INCLUDE_DIRECTORIES ${RESINSIGHT_OPENVDS_API_DIR}/include
|
|
)
|
|
endif()
|
|
|
|
#
|
|
# HDF5
|
|
#
|
|
if(RESINSIGHT_FOUND_HDF5)
|
|
|
|
set(HDF5_FILES
|
|
FileInterface/RifHdf5Reader.h
|
|
FileInterface/RifHdf5Reader.cpp
|
|
FileInterface/RifHdf5SummaryReader.h
|
|
FileInterface/RifHdf5SummaryReader.cpp
|
|
FileInterface/RifOpmHdf5Summary.h
|
|
FileInterface/RifOpmHdf5Summary.cpp
|
|
FileInterface/RifHdf5Exporter.h
|
|
FileInterface/RifHdf5Exporter.cpp
|
|
FileInterface/RifHdf5SummaryExporter.h
|
|
FileInterface/RifHdf5SummaryExporter.cpp
|
|
)
|
|
|
|
list(APPEND CPP_SOURCES ${HDF5_FILES})
|
|
|
|
# Scope USE_HDF5/H5_BUILT_AS_DYNAMIC_LIB to the files that need it, to avoid a
|
|
# full rebuild on toggle.
|
|
set_source_files_properties(
|
|
${HDF5_FILES}
|
|
${CMAKE_CURRENT_SOURCE_DIR}/FileInterface/RifReaderEclipseSummary.cpp
|
|
${CMAKE_CURRENT_SOURCE_DIR}/FileInterface/RifReaderEclipseOutput.cpp
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Application/RiaPreferencesSummary.cpp
|
|
${CMAKE_CURRENT_SOURCE_DIR}/SocketInterface/RiaPropertyDataCommands.cpp
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/RimEmCase.cpp
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/RimEclipseResultDefinition.cpp
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/RimEclipseResultCase.cpp
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/Summary/RimSummaryCaseMainCollection.cpp
|
|
PROPERTIES COMPILE_DEFINITIONS "USE_HDF5;H5_BUILT_AS_DYNAMIC_LIB"
|
|
)
|
|
|
|
if(MSVC)
|
|
set(RI_HDF5_INCLUDE_DIRS ${RESINSIGHT_HDF5_DIR}/include)
|
|
else()
|
|
set(RI_HDF5_INCLUDE_DIRS ${HDF5_INCLUDE_DIRS})
|
|
# A system HDF5 reports /usr/include. CMake does not filter implicit dirs
|
|
# from the source-file property, and an explicit -I/usr/include breaks
|
|
# #include_next <math.h> in <cmath> on gcc-toolset.
|
|
list(REMOVE_ITEM RI_HDF5_INCLUDE_DIRS
|
|
${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES}
|
|
)
|
|
endif() # MSVC
|
|
|
|
# Only these files (and HDF5_FILES) include HDF5 headers directly, so scope
|
|
# the include dir to just them to avoid a full rebuild on toggle.
|
|
set_source_files_properties(
|
|
${HDF5_FILES}
|
|
${CMAKE_CURRENT_SOURCE_DIR}/FileInterface/RifReaderEclipseOutput.cpp
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/RimEmCase.cpp
|
|
PROPERTIES INCLUDE_DIRECTORIES "${RI_HDF5_INCLUDE_DIRS}"
|
|
)
|
|
endif()
|
|
|
|
#
|
|
# OpenTelemetry
|
|
#
|
|
set(OPENTELEMETRY_FILES
|
|
Application/RiaPreferencesOpenTelemetry.h
|
|
Application/RiaPreferencesOpenTelemetry.cpp
|
|
Application/Tools/Telemetry/RiaOpenTelemetryManager.h
|
|
Application/Tools/Telemetry/RiaOpenTelemetryManager.cpp
|
|
)
|
|
list(APPEND CPP_SOURCES ${OPENTELEMETRY_FILES})
|
|
|
|
qt_add_resources(QRC_FILES Application/Resources/ApplicationLibCode.qrc)
|
|
|
|
list(APPEND ALL_SOURCE_FILES ${CPP_SOURCES} ${QRC_FILES})
|
|
|
|
add_library(${PROJECT_NAME} OBJECT ${ALL_SOURCE_FILES})
|
|
|
|
# NOTE: Scope ENABLE_GRPC/USE_ODB_API to the few files that use them, to avoid a
|
|
# full rebuild of this target on toggle. RiaPreferences.cpp and
|
|
# RimContextCommandBuilder.cpp need both, so combine them into a single
|
|
# set_source_files_properties() call per file (a second call would overwrite,
|
|
# not add to, COMPILE_DEFINITIONS from the first).
|
|
set(RI_SHARED_DEFS_FILES
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Application/RiaPreferences.cpp
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/RimContextCommandBuilder.cpp
|
|
)
|
|
set(RI_SHARED_DEFS "")
|
|
if(RESINSIGHT_ENABLE_GRPC)
|
|
list(APPEND RI_SHARED_DEFS ENABLE_GRPC)
|
|
endif()
|
|
if(RESINSIGHT_USE_ODB_API)
|
|
list(APPEND RI_SHARED_DEFS USE_ODB_API)
|
|
endif()
|
|
if(RI_SHARED_DEFS)
|
|
set_source_files_properties(
|
|
${RI_SHARED_DEFS_FILES} PROPERTIES COMPILE_DEFINITIONS "${RI_SHARED_DEFS}"
|
|
)
|
|
endif()
|
|
|
|
if(RESINSIGHT_USE_ODB_API)
|
|
set_source_files_properties(
|
|
${CMAKE_CURRENT_SOURCE_DIR}/UserInterface/RiuMainWindow.cpp
|
|
PROPERTIES COMPILE_DEFINITIONS USE_ODB_API
|
|
)
|
|
endif()
|
|
|
|
option(RESINSIGHT_ENABLE_DYNAMIC_DEOPTIMALIZATION
|
|
"Ensable Dynamic Deoptimalization" OFF
|
|
)
|
|
mark_as_advanced(FORCE RESINSIGHT_ENABLE_DYNAMIC_DEOPTIMALIZATION)
|
|
if(MSVC AND RESINSIGHT_ENABLE_DYNAMIC_DEOPTIMALIZATION)
|
|
message("Dynamic Deoptimalization is enabled on : ${PROJECT_NAME}")
|
|
target_compile_options(${PROJECT_NAME} PRIVATE /dynamicdeopt)
|
|
target_link_options(${PROJECT_NAME} PRIVATE /DYNAMICDEOPT)
|
|
else()
|
|
message("Dynamic Deoptimalization is disabled on : ${PROJECT_NAME}")
|
|
endif()
|
|
|
|
option(RESINSIGHT_ENABLE_PRECOMPILED_HEADERS "Use Precompiled Headers" OFF)
|
|
mark_as_advanced(FORCE RESINSIGHT_ENABLE_PRECOMPILED_HEADERS)
|
|
if(RESINSIGHT_ENABLE_PRECOMPILED_HEADERS)
|
|
message("Precompiled Headers is enabled on : ${PROJECT_NAME}")
|
|
target_precompile_headers(ApplicationLibCode PRIVATE pch.h)
|
|
endif()
|
|
|
|
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
|
target_compile_options(
|
|
ApplicationLibCode PRIVATE -Wall -Wno-reorder -Wno-parentheses -Wno-switch
|
|
)
|
|
endif()
|
|
|
|
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
|
|
|
target_compile_options(
|
|
ApplicationLibCode
|
|
PRIVATE -Wall
|
|
-Wno-reorder
|
|
-Wno-switch
|
|
-Wno-undefined-var-template
|
|
-Wno-delete-abstract-non-virtual-dtor
|
|
-Wno-call-to-pure-virtual-from-ctor-dtor
|
|
-Wno-delete-non-abstract-non-virtual-dtor
|
|
-Wno-ambiguous-reversed-operator
|
|
-Wno-deprecated-declarations
|
|
)
|
|
endif()
|
|
|
|
if(MSVC)
|
|
# The following warnings are supposed to be used in ResInsight, but
|
|
# temporarily disabled to avoid too much noise warning C4245: 'return':
|
|
# conversion from 'int' to 'size_t', signed/unsigned mismatch warning C4005:
|
|
# Macro redefinition for math constants (M_PI, M_SQRT2 etc)
|
|
|
|
# If possible, the following command is supposed to be the final target
|
|
# set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "/W3 /wd4190
|
|
# /wd4100 /wd4127")
|
|
|
|
set(BUILD_FLAGS_FOR_MSVC "/W3 /wd4190 /wd4100 /wd4127")
|
|
|
|
message(STATUS "CMAKE_CXX_COMPILER_VERSION ${CMAKE_CXX_COMPILER_VERSION}")
|
|
|
|
if(CMAKE_CXX_COMPILER_VERSION GREATER_EQUAL 19.38)
|
|
# https://github.com/OPM/ResInsight/issues/10844
|
|
set(BUILD_FLAGS_FOR_MSVC "${BUILD_FLAGS_FOR_MSVC} /wd4996")
|
|
endif()
|
|
|
|
message(STATUS "BUILD_FLAGS_FOR_MSVC ${BUILD_FLAGS_FOR_MSVC}")
|
|
set_target_properties(
|
|
${PROJECT_NAME} PROPERTIES COMPILE_FLAGS ${BUILD_FLAGS_FOR_MSVC}
|
|
)
|
|
|
|
endif()
|
|
|
|
# ##############################################################################
|
|
# Set up libraries and dependent projects to link with
|
|
# ##############################################################################
|
|
|
|
set(LINK_LIBRARIES
|
|
Eigen3::Eigen
|
|
Clipper2::Clipper2Z
|
|
nanoflann::nanoflann
|
|
${THIRD_PARTY_LIBRARIES}
|
|
${OPENGL_LIBRARIES}
|
|
${QT_LIBRARIES}
|
|
${OPM_LIBRARIES}
|
|
${APP_FWK_LIBRARIES}
|
|
${VIZ_FWK_LIBRARIES}
|
|
${RI_LIBRARIES}
|
|
)
|
|
|
|
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
|
# According to ivarun rt is needed on OpenSuse, and Fedora. See:
|
|
# https://github.com/OPM/ResInsight/pull/7
|
|
list(APPEND EXTERNAL_LINK_LIBRARIES rt)
|
|
endif()
|
|
|
|
# std::stacktrace needs stdc++exp on most libstdc++ toolchains. Which library,
|
|
# if any, is probed in cmake/StdStacktrace.cmake.
|
|
list(APPEND EXTERNAL_LINK_LIBRARIES ${RESINSIGHT_STACKTRACE_LIBRARIES})
|
|
|
|
target_link_libraries(
|
|
ApplicationLibCode PUBLIC ${LINK_LIBRARIES} ${EXTERNAL_LINK_LIBRARIES}
|
|
)
|
|
target_link_libraries(ApplicationLibCode PRIVATE ResInsightCommonSettings)
|
|
|
|
target_include_directories(
|
|
${PROJECT_NAME}
|
|
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/Commands
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Commands/EclipseCommands
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModelCommands/CommandRouter
|
|
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Adm
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Application
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Application/Tools
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Application/Tools/WellPathTools
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Application/Tools/KeyValueStore
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Application/Tools/Telemetry
|
|
${CMAKE_CURRENT_SOURCE_DIR}/CommandFileInterface
|
|
${CMAKE_CURRENT_SOURCE_DIR}/CommandFileInterface/Core
|
|
${CMAKE_CURRENT_SOURCE_DIR}/FileInterface
|
|
${CMAKE_CURRENT_SOURCE_DIR}/GeoMech
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ModelVisualization
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ModelVisualization/Faults
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ModelVisualization/GridBox
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ModelVisualization/Intersections
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ModelVisualization/Seismic
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ModelVisualization/Streamlines
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ModelVisualization/Surfaces
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/AnalysisPlots
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/CorrelationPlots
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/Annotations
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/Completions
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/Faults
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/Flow
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/GridCrossPlots
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/GeoMech
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/Parameters
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/Measurement
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/StimPlanModel
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/Summary
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/Surfaces
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/Intersections
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/Streamlines
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/Seismic
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/CellFilters
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/ProcessControl
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/WellLog
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/WellLog/WellLogTrack
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/WellMeasurement
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/WellPath
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/WellEvents
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/Workflow
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModelCommands
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModelCommands/CommandRouter
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ReservoirDataModel
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ReservoirDataModel/Completions
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ReservoirDataModel/ResultAccessors
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ReservoirDataModel/ResultCalculators
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ReservoirDataModel/SimulationFile
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ResultStatisticsCache
|
|
${CMAKE_CURRENT_SOURCE_DIR}/SocketInterface
|
|
${CMAKE_CURRENT_SOURCE_DIR}/UserInterface
|
|
${CMAKE_CURRENT_SOURCE_DIR}/UserInterface/AnalysisPlots
|
|
${CMAKE_CURRENT_SOURCE_DIR}/GeoMech/GeoMechDataModel
|
|
${CMAKE_CURRENT_SOURCE_DIR}/GeoMech/GeoMechVisualization
|
|
${CMAKE_CURRENT_SOURCE_DIR}/GeoMech/GeoMechFileInterface
|
|
${CMAKE_CURRENT_SOURCE_DIR}/GeoMech/OdbReader
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Measurement
|
|
${ResInsight_SOURCE_DIR}/ThirdParty
|
|
${CMAKE_BINARY_DIR}/Generated
|
|
${RI_PUBLIC_INCLUDES}
|
|
)
|
|
|
|
# ##############################################################################
|
|
# Unity builds
|
|
# ##############################################################################
|
|
|
|
set(UNITY_EXCLUDE_FILES
|
|
# forever is used as variable name, and this symbol is defined by Qt and
|
|
# used in precompiled headers
|
|
${ResInsight_SOURCE_DIR}/ThirdParty/gtest/gtest-all.cc
|
|
qrc_cafAnimControl.cpp
|
|
qrc_ResInsight.cpp
|
|
qrc_cafCommandFeatures.cpp
|
|
qrc_ApplicationLibCode.cpp
|
|
# Exclude files including opm-common
|
|
ProjectDataModel/RimVfpTableExtractor.cpp
|
|
ProjectDataModel/RimVfpPlot.cpp
|
|
# Exclude moc files as they cause template instantiation issues
|
|
# https://cmake.org/cmake/help/latest/prop_tgt/AUTOGEN_BUILD_DIR.html
|
|
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}_autogen/mocs_compilation.cpp
|
|
ProjectDataModel/RiaOpmParserTools.cpp
|
|
ProjectDataModel/RiaOpmKeywordTools.cpp
|
|
FileInterface/RifOsduWellPathReader.cpp
|
|
FileInterface/RifOsduWellLogReader.cpp
|
|
FileInterface/RifByteArrayArrowRandomAccessFile.cpp
|
|
FileInterface/RifArrowTools.cpp
|
|
FileInterface/RifReaderOpmRft.cpp
|
|
)
|
|
|
|
message("Files excluded from UNITY_BUILD : ${UNITY_EXCLUDE_FILES}")
|
|
|
|
if(RESINSIGHT_ENABLE_UNITY_BUILD)
|
|
foreach(fileToExclude ${UNITY_EXCLUDE_FILES})
|
|
set_source_files_properties(
|
|
${fileToExclude} PROPERTIES SKIP_UNITY_BUILD_INCLUSION TRUE
|
|
)
|
|
endforeach(fileToExclude)
|
|
endif()
|
|
|
|
# ##############################################################################
|
|
# Unit tests
|
|
# ##############################################################################
|
|
|
|
option(RESINSIGHT_INCLUDE_APPLICATION_UNIT_TESTS
|
|
"Include ApplicationLibCode Unit Tests" OFF
|
|
)
|
|
mark_as_advanced(FORCE RESINSIGHT_INCLUDE_APPLICATION_UNIT_TESTS)
|
|
if(RESINSIGHT_INCLUDE_APPLICATION_UNIT_TESTS)
|
|
enable_testing()
|
|
add_subdirectory(UnitTests)
|
|
add_subdirectory(FeatureTests)
|
|
endif()
|