Files
ResInsight/ApplicationLibCode/CMakeLists.txt
T

474 lines
17 KiB
CMake
Raw Normal View History

project(ApplicationLibCode)
2020-02-18 14:23:49 +01:00
# set packaging dir
if(NOT CPACK_PACKAGE_DIRECTORY)
2020-10-30 12:31:16 +01:00
set(CPACK_PACKAGE_DIRECTORY ${CMAKE_BINARY_DIR}/packages)
2020-02-18 14:23:49 +01:00
endif()
if(RESINSIGHT_ENABLE_UNITY_BUILD)
2020-10-30 12:31:16 +01:00
message("Cmake Unity build is enabled on : ${PROJECT_NAME}")
set(CMAKE_UNITY_BUILD true)
endif()
2020-10-30 12:31:16 +01:00
if(CMAKE_COMPILER_IS_GNUCXX)
set(CMAKE_CXX_FLAGS
2021-09-01 08:13:16 +02:00
"${CMAKE_CXX_FLAGS} -Wno-deprecated -Wno-deprecated-declarations"
)
2019-09-16 12:56:47 +02:00
endif()
# Open GL
2020-10-30 12:31:16 +01:00
find_package(OpenGL)
2024-09-30 11:21:17 +02:00
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()
2023-06-02 14:04:23 +02:00
if(RESINSIGHT_GRPC_PYTHON_EXECUTABLE)
set(Python3_EXECUTABLE ${RESINSIGHT_GRPC_PYTHON_EXECUTABLE})
find_package(Python3)
message(STATUS "Using Python Version: ${Python3_VERSION}")
endif()
2020-10-30 12:31:16 +01:00
# NB: The generated file is written to Cmake binary folder to avoid source tree
# pollution This folder is added to include_directories
2021-09-01 08:13:16 +02:00
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
)
2020-10-30 12:31:16 +01:00
if(MSVC)
# Avoid Qt warnings about macro redefinitions for math constants
add_definitions(-D_USE_MATH_DEFINES)
endif()
2012-06-26 16:10:41 +02:00
2020-10-25 09:22:19 +01:00
find_package(Eigen3 REQUIRED)
2020-10-30 12:31:16 +01:00
# ##############################################################################
# Defining all the source (and header) files
2020-10-30 12:31:16 +01:00
# ##############################################################################
2020-10-30 12:31:16 +01:00
list(
APPEND
REFERENCED_CMAKE_FILES
Application/CMakeLists_files.cmake
Application/Tools/CMakeLists_files.cmake
Application/Tools/WellPathTools/CMakeLists_files.cmake
2024-07-05 09:31:16 +02:00
Application/Tools/Cloud/CMakeLists_files.cmake
2024-10-21 14:40:25 +02:00
Application/Tools/Summary/CMakeLists_files.cmake
2025-04-11 10:23:31 +02:00
Application/Tools/KeyValueStore/CMakeLists_files.cmake
Application/Tools/Ensemble/CMakeLists_files.cmake
2020-10-30 12:31:16 +01:00
ReservoirDataModel/CMakeLists_files.cmake
ReservoirDataModel/CMakeLists_filesNotToUnitTest.cmake
ReservoirDataModel/Completions/CMakeLists_files.cmake
ReservoirDataModel/SimulationFile/CMakeLists_files.cmake
2025-10-30 18:33:11 +01:00
ReservoirDataModel/CompletionsMsw/CMakeLists_files.cmake
ReservoirDataModel/ContourMap/CMakeLists_files.cmake
2023-03-03 15:21:01 +01:00
ReservoirDataModel/ResultAccessors/CMakeLists_files.cmake
2023-04-17 15:12:26 +02:00
ReservoirDataModel/ResultCalculators/CMakeLists_files.cmake
ReservoirDataModel/Well/CMakeLists_files.cmake
2025-05-21 18:09:22 +02:00
ReservoirDataModel/Surface/CMakeLists_files.cmake
2020-10-30 12:31:16 +01:00
FileInterface/CMakeLists_files.cmake
ProjectDataModel/CMakeLists_files.cmake
ProjectDataModel/AnalysisPlots/CMakeLists_files.cmake
ProjectDataModel/Appearance/CMakeLists_files.cmake
2020-10-30 12:31:16 +01:00
ProjectDataModel/CorrelationPlots/CMakeLists_files.cmake
ProjectDataModel/ContourMap/CMakeLists_files.cmake
2024-07-05 09:06:16 +02:00
ProjectDataModel/Cloud/CMakeLists_files.cmake
ProjectDataModel/EnsembleFileSet/CMakeLists_files.cmake
ProjectDataModel/Faults/CMakeLists_files.cmake
2021-03-10 13:56:28 +01:00
ProjectDataModel/GeoMech/CMakeLists_files.cmake
2020-10-30 12:31:16 +01:00
ProjectDataModel/GridCrossPlots/CMakeLists_files.cmake
ProjectDataModel/GridCrossPlots/CellFilters/CMakeLists_files.cmake
2025-06-11 15:43:53 +02:00
ProjectDataModel/Jobs/CMakeLists_files.cmake
2020-10-30 12:31:16 +01:00
ProjectDataModel/Summary/CMakeLists_files.cmake
2024-07-05 09:06:16 +02:00
ProjectDataModel/Summary/Sumo/CMakeLists_files.cmake
ProjectDataModel/Summary/Ensemble/CMakeLists_files.cmake
2020-10-30 12:31:16 +01:00
ProjectDataModel/Flow/CMakeLists_files.cmake
ProjectDataModel/Formations/CMakeLists_files.cmake
2020-10-30 12:31:16 +01:00
ProjectDataModel/Annotations/CMakeLists_files.cmake
ProjectDataModel/Completions/CMakeLists_files.cmake
ProjectDataModel/Measurement/CMakeLists_files.cmake
2021-05-18 14:28:54 +02:00
ProjectDataModel/Parameters/CMakeLists_files.cmake
2020-10-30 12:31:16 +01:00
ProjectDataModel/PlotTemplates/CMakeLists_files.cmake
ProjectDataModel/StimPlanModel/CMakeLists_files.cmake
ProjectDataModel/Streamlines/CMakeLists_files.cmake
2023-03-24 15:36:10 +01:00
ProjectDataModel/Seismic/CMakeLists_files.cmake
2020-10-30 12:31:16 +01:00
ProjectDataModel/Surfaces/CMakeLists_files.cmake
ProjectDataModel/Intersections/CMakeLists_files.cmake
ProjectDataModel/CellFilters/CMakeLists_files.cmake
2021-05-18 14:28:54 +02:00
ProjectDataModel/ProcessControl/CMakeLists_files.cmake
2024-02-12 10:19:52 +01:00
ProjectDataModel/Polygons/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
2022-12-08 07:08:22 +01:00
ProjectDataModel/Tools/CMakeLists_files.cmake
2020-10-30 12:31:16 +01:00
ProjectDataModelCommands/CMakeLists_files.cmake
ProjectDataModelCommands/CommandRouter/CMakeLists_files.cmake
ProjectDataModel/VerticalFlowPerformance/CMakeLists_files.cmake
2024-10-18 14:25:04 +02:00
ProjectDataModel/QuickAccess/CMakeLists_files.cmake
2025-06-02 14:52:45 +02:00
ProjectDataModel/Histogram/CMakeLists_files.cmake
2020-10-30 12:31:16 +01:00
GeoMech/GeoMechVisualization/CMakeLists_files.cmake
ModelVisualization/CMakeLists_files.cmake
2023-05-03 02:20:05 +02:00
ModelVisualization/Faults/CMakeLists_files.cmake
2020-10-30 12:31:16 +01:00
ModelVisualization/GridBox/CMakeLists_files.cmake
ModelVisualization/Intersections/CMakeLists_files.cmake
2023-03-24 15:36:10 +01:00
ModelVisualization/Seismic/CMakeLists_files.cmake
ModelVisualization/Streamlines/CMakeLists_files.cmake
2020-10-30 12:31:16 +01:00
ModelVisualization/Surfaces/CMakeLists_files.cmake
ModelVisualization/WindowEdgeAxesOverlayItem/CMakeLists_files.cmake
UserInterface/CMakeLists_files.cmake
UserInterface/AnalysisPlots/CMakeLists_files.cmake
CommandFileInterface/CMakeLists_files.cmake
2021-09-01 08:13:16 +02:00
CommandFileInterface/Core/CMakeLists_files.cmake
SocketInterface/CMakeLists_files.cmake
2021-09-01 08:13:16 +02:00
)
2020-10-30 12:31:16 +01:00
# Include source file lists from *.cmake files
2020-10-30 12:31:16 +01:00
foreach(referencedfile ${REFERENCED_CMAKE_FILES})
include(${referencedfile})
endforeach(referencedfile)
2020-10-30 12:31:16 +01:00
list(APPEND CPP_SOURCES ${CODE_SOURCE_FILES})
2012-05-18 09:45:23 +02:00
2020-10-30 12:31:16 +01:00
# ##############################################################################
# Sub-directory projects
2020-10-30 12:31:16 +01:00
# ##############################################################################
#
# Odb api
#
if(RESINSIGHT_USE_ODB_API)
add_definitions(-DUSE_ODB_API)
endif()
2015-05-07 09:57:17 +02:00
2023-04-21 16:38:04 +02:00
#
# OpenVDS
#
if(RESINSIGHT_ENABLE_OPENVDS)
message(STATUS "OpenVDS support enabled")
add_definitions(-DUSE_OPENVDS)
list(APPEND RI_PRIVATE_INCLUDES ${RESINSIGHT_OPENVDS_API_DIR}/include)
list(APPEND CPP_SOURCES FileInterface/RifOpenVDSReader.cpp
FileInterface/RifOpenVDSReader.h
)
endif()
2023-04-21 16:38:04 +02:00
#
2020-10-30 12:31:16 +01:00
# 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
2021-09-01 08:13:16 +02:00
FileInterface/RifHdf5SummaryExporter.cpp
)
list(APPEND CPP_SOURCES ${HDF5_FILES})
2020-10-30 12:31:16 +01:00
add_definitions(-DUSE_HDF5)
add_definitions(-DH5_BUILT_AS_DYNAMIC_LIB)
2020-10-30 12:31:16 +01:00
if(MSVC)
2023-04-25 13:14:26 +02:00
list(APPEND RI_PRIVATE_INCLUDES ${RESINSIGHT_HDF5_DIR}/include)
2020-10-30 12:31:16 +01:00
else()
2023-04-25 13:14:26 +02:00
list(APPEND RI_PRIVATE_INCLUDES ${HDF5_INCLUDE_DIRS})
2020-10-30 12:31:16 +01:00
endif() # MSVC
endif()
2025-12-17 10:47:36 +01:00
#
# OpenTelemetry
#
2025-12-22 08:29:18 +01:00
set(OPENTELEMETRY_FILES
Application/RiaPreferencesOpenTelemetry.h
Application/RiaPreferencesOpenTelemetry.cpp
Application/Tools/Telemetry/RiaOpenTelemetryManager.h
Application/Tools/Telemetry/RiaOpenTelemetryManager.cpp
2025-12-17 10:47:36 +01:00
)
2025-12-22 08:29:18 +01:00
list(APPEND CPP_SOURCES ${OPENTELEMETRY_FILES})
2025-12-17 10:47:36 +01:00
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})
2025-05-28 15:10:43 +02:00
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)
2020-10-30 12:31:16 +01:00
message("Precompiled Headers is enabled on : ${PROJECT_NAME}")
2021-01-11 22:21:39 +01:00
target_precompile_headers(ApplicationLibCode PRIVATE pch.h)
endif()
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
target_compile_options(
2023-04-17 15:57:39 +02:00
ApplicationLibCode PRIVATE -Wall -Wno-reorder -Wno-parentheses -Wno-switch
2021-09-01 08:13:16 +02:00
)
endif()
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
target_compile_options(
ApplicationLibCode
PRIVATE -Wall
-Wno-reorder
-Wno-switch
-Wno-undefined-var-template
2023-04-17 15:57:39 +02:00
-Wno-delete-abstract-non-virtual-dtor
-Wno-call-to-pure-virtual-from-ctor-dtor
-Wno-delete-non-abstract-non-virtual-dtor
2023-01-19 08:20:07 +01:00
-Wno-ambiguous-reversed-operator
2024-09-30 11:21:17 +02:00
-Wno-deprecated-declarations
)
endif()
2020-10-30 12:31:16 +01:00
if(MSVC)
# The following warnings are supposed to be used in ResInsight, but
# temporarily disabled to avoid too much noise warning C4245: 'return':
2020-10-30 13:54:11 +01:00
# conversion from 'int' to 'size_t', signed/unsigned mismatch warning C4005:
# Macro redefinition for math constants (M_PI, M_SQRT2 etc)
2020-10-30 12:31:16 +01:00
# If possible, the following command is supposed to be the final target
# set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "/W3 /wd4190
2020-10-30 12:31:16 +01:00
# /wd4100 /wd4127")
2023-04-17 15:57:39 +02:00
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}")
2021-09-01 08:13:16 +02:00
set_target_properties(
${PROJECT_NAME} PROPERTIES COMPILE_FLAGS ${BUILD_FLAGS_FOR_MSVC}
)
endif()
2020-10-30 12:31:16 +01:00
# ##############################################################################
# Set up libraries and dependent projects to link with
2020-10-30 12:31:16 +01:00
# ##############################################################################
2020-10-30 12:31:16 +01:00
set(LINK_LIBRARIES
2020-10-26 11:25:23 +01:00
Eigen3::Eigen
2026-01-05 15:43:43 +01:00
Clipper2::Clipper2Z
nanoflann::nanoflann
${THIRD_PARTY_LIBRARIES}
${OPENGL_LIBRARIES}
${QT_LIBRARIES}
${OPM_LIBRARIES}
${APP_FWK_LIBRARIES}
${VIZ_FWK_LIBRARIES}
2021-09-01 08:13:16 +02:00
${RI_LIBRARIES}
)
2020-10-30 12:31:16 +01:00
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
# According to ivarun rt is needed on OpenSuse, and Fedora. See:
# https://github.com/OPM/ResInsight/pull/7
2020-10-30 12:31:16 +01:00
list(APPEND EXTERNAL_LINK_LIBRARIES rt)
2025-05-12 07:57:37 +02:00
# std::stacktrace requires stdc++exp. If a custom build of GCC stdc++exp is
2025-11-19 10:25:32 +01:00
# required, define the search path here.
2025-05-12 07:57:37 +02:00
set(RESINSIGHT_GCC_STDCPP_EXP_PATH
""
CACHE PATH "Path to search for stdc++exp"
)
if(RESINSIGHT_GCC_STDCPP_EXP_PATH)
find_library(
STDCPP_EXP_LIBRARY
NAMES stdc++exp
HINTS ${RESINSIGHT_GCC_STDCPP_EXP_PATH}
)
if(STDCPP_EXP_LIBRARY)
2025-05-12 05:58:06 +00:00
message(
STATUS
"stdc++exp library found at custom location: ${STDCPP_EXP_LIBRARY}"
)
2025-05-12 07:57:37 +02:00
list(APPEND EXTERNAL_LINK_LIBRARIES ${STDCPP_EXP_LIBRARY})
endif()
else()
# stdc++exp is required for std::stacktrace
message(STATUS "stdc++exp library found at default location")
list(APPEND EXTERNAL_LINK_LIBRARIES stdc++exp)
endif()
2012-10-02 10:17:52 +02:00
endif()
2021-09-01 08:13:16 +02:00
target_link_libraries(
ApplicationLibCode PUBLIC ${LINK_LIBRARIES} ${EXTERNAL_LINK_LIBRARIES}
2021-09-01 08:13:16 +02:00
)
target_link_libraries(ApplicationLibCode PRIVATE ResInsightCommonSettings)
target_include_directories(
${PROJECT_NAME}
2023-04-25 13:14:26 +02:00
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/Commands
${CMAKE_CURRENT_SOURCE_DIR}/Commands/EclipseCommands
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModelCommands/CommandRouter
${RI_PRIVATE_INCLUDES}
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
2025-05-12 13:12:31 +02:00
${CMAKE_CURRENT_SOURCE_DIR}/Application/Tools/KeyValueStore
2025-12-17 10:47:36 +01:00
${CMAKE_CURRENT_SOURCE_DIR}/Application/Tools/Telemetry
2023-04-25 13:14:26 +02:00
${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
2023-05-03 02:20:05 +02:00
${CMAKE_CURRENT_SOURCE_DIR}/ModelVisualization/Faults
2023-04-25 13:14:26 +02:00
${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
2023-04-25 13:14:26 +02:00
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/WellMeasurement
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/WellPath
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/WellEvents
2023-04-25 13:14:26 +02:00
${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
2023-04-25 13:14:26 +02:00
${CMAKE_CURRENT_SOURCE_DIR}/SocketInterface
${CMAKE_CURRENT_SOURCE_DIR}/UserInterface
${CMAKE_CURRENT_SOURCE_DIR}/UserInterface/AnalysisPlots
2023-04-25 13:14:26 +02:00
${CMAKE_CURRENT_SOURCE_DIR}/GeoMech/GeoMechDataModel
${CMAKE_CURRENT_SOURCE_DIR}/GeoMech/GeoMechVisualization
${CMAKE_CURRENT_SOURCE_DIR}/GeoMech/GeoMechFileInterface
2023-04-25 13:14:26 +02:00
${CMAKE_CURRENT_SOURCE_DIR}/GeoMech/OdbReader
${CMAKE_CURRENT_SOURCE_DIR}/Measurement
${ResInsight_SOURCE_DIR}/ThirdParty
${CMAKE_BINARY_DIR}/Generated
2023-05-01 18:44:05 +02:00
${RI_PUBLIC_INCLUDES}
2021-09-01 08:13:16 +02:00
)
2020-10-30 12:31:16 +01:00
# ##############################################################################
2020-08-28 15:06:50 +02:00
# Unity builds
2020-10-30 12:31:16 +01:00
# ##############################################################################
2020-10-30 12:31:16 +01:00
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
2020-11-13 14:56:48 +01:00
qrc_cafAnimControl.cpp
qrc_ResInsight.cpp
qrc_cafCommandFeatures.cpp
qrc_ApplicationLibCode.cpp
2020-11-13 14:56:48 +01:00
# Exclude files including opm-common
ProjectDataModel/RimVfpTableExtractor.cpp
2021-09-01 08:13:16 +02:00
ProjectDataModel/RimVfpPlot.cpp
2025-11-19 10:25:32 +01:00
# Exclude moc files as they cause template instantiation issues
2024-09-30 11:21:17 +02:00
# https://cmake.org/cmake/help/latest/prop_tgt/AUTOGEN_BUILD_DIR.html
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}_autogen/mocs_compilation.cpp
2024-05-16 15:00:05 +02:00
ProjectDataModel/RiaOpmParserTools.cpp
2024-06-10 18:24:01 +02:00
FileInterface/RifOsduWellPathReader.cpp
FileInterface/RifOsduWellLogReader.cpp
FileInterface/RifByteArrayArrowRandomAccessFile.cpp
2024-07-05 09:31:16 +02:00
FileInterface/RifArrowTools.cpp
2025-01-22 08:34:46 +01:00
FileInterface/RifReaderOpmRft.cpp
2021-09-01 08:13:16 +02:00
)
2016-06-29 08:03:59 +02:00
2024-09-30 11:21:17 +02:00
message("Files excluded from UNITY_BUILD : ${UNITY_EXCLUDE_FILES}")
if(RESINSIGHT_ENABLE_UNITY_BUILD)
2020-10-30 12:31:16 +01:00
foreach(fileToExclude ${UNITY_EXCLUDE_FILES})
2021-09-01 08:13:16 +02:00
set_source_files_properties(
${fileToExclude} PROPERTIES SKIP_UNITY_BUILD_INCLUSION TRUE
)
2020-10-30 12:31:16 +01:00
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)
endif()