2021-01-06 15:03:38 +01:00
|
|
|
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()
|
|
|
|
|
|
2020-01-23 13:41:31 +01:00
|
|
|
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)
|
2020-01-23 13:41:31 +01:00
|
|
|
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()
|
|
|
|
|
|
2018-11-27 09:47:44 +01:00
|
|
|
# Open GL
|
2020-10-30 12:31:16 +01:00
|
|
|
find_package(OpenGL)
|
2018-11-27 09:47:44 +01:00
|
|
|
|
2020-10-30 12:31:16 +01:00
|
|
|
option(RESINSIGHT_TREAT_WARNINGS_AS_ERRORS
|
2021-09-01 08:13:16 +02:00
|
|
|
"Treat warnings as errors (stops build)" OFF
|
|
|
|
|
)
|
2020-10-30 12:31:16 +01:00
|
|
|
|
2022-03-12 16:43:48 +01:00
|
|
|
find_package(Qt5 ${RI_QT_MINIMUM_VERSION} COMPONENTS Core)
|
2020-10-30 12:31:16 +01:00
|
|
|
|
|
|
|
|
if(Qt5Core_FOUND)
|
|
|
|
|
find_package(
|
2022-03-12 16:43:48 +01:00
|
|
|
Qt5 ${RI_QT_MINIMUM_VERSION}
|
2020-11-13 15:37:08 +01:00
|
|
|
COMPONENTS Core
|
|
|
|
|
Gui
|
|
|
|
|
OpenGL
|
|
|
|
|
Network
|
2024-02-28 08:10:52 +01:00
|
|
|
NetworkAuth
|
2020-11-13 15:37:08 +01:00
|
|
|
Widgets
|
|
|
|
|
Xml
|
|
|
|
|
Concurrent
|
|
|
|
|
PrintSupport
|
|
|
|
|
Svg
|
2024-05-01 09:46:22 +02:00
|
|
|
Sql
|
2021-09-01 08:13:16 +02:00
|
|
|
OPTIONAL_COMPONENTS Charts
|
|
|
|
|
)
|
2020-10-30 12:31:16 +01:00
|
|
|
set(QT_LIBRARIES
|
|
|
|
|
Qt5::Core
|
|
|
|
|
Qt5::Gui
|
|
|
|
|
Qt5::Network
|
2024-02-28 08:10:52 +01:00
|
|
|
Qt5::NetworkAuth
|
2020-10-30 12:31:16 +01:00
|
|
|
Qt5::OpenGL
|
|
|
|
|
Qt5::Widgets
|
|
|
|
|
Qt5::Xml
|
|
|
|
|
Qt5::Concurrent
|
|
|
|
|
Qt5::PrintSupport
|
2021-09-01 08:13:16 +02:00
|
|
|
Qt5::Svg
|
2024-05-01 09:46:22 +02:00
|
|
|
Qt5::Sql
|
2021-09-01 08:13:16 +02:00
|
|
|
)
|
2020-11-13 15:37:08 +01:00
|
|
|
if(Qt5Charts_FOUND)
|
|
|
|
|
list(APPEND QT_LIBRARIES Qt5::Charts)
|
|
|
|
|
endif(Qt5Charts_FOUND)
|
2019-05-29 08:14:02 +02:00
|
|
|
endif(Qt5Core_FOUND)
|
|
|
|
|
|
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)
|
2020-09-24 14:34:58 +02:00
|
|
|
# Avoid Qt warnings about macro redefinitions for math constants
|
|
|
|
|
add_definitions(-D_USE_MATH_DEFINES)
|
2017-12-18 08:20:14 +01:00
|
|
|
endif()
|
2012-06-26 16:10:41 +02:00
|
|
|
|
2020-10-25 09:22:19 +01:00
|
|
|
find_package(Eigen3 REQUIRED)
|
2019-09-16 13:18:23 +02:00
|
|
|
|
2020-10-30 12:31:16 +01:00
|
|
|
# ##############################################################################
|
2015-04-29 09:26:29 +02:00
|
|
|
# Defining all the source (and header) files
|
2020-10-30 12:31:16 +01:00
|
|
|
# ##############################################################################
|
2012-09-11 09:22:36 +02: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
|
|
|
|
|
ReservoirDataModel/CMakeLists_files.cmake
|
|
|
|
|
ReservoirDataModel/CMakeLists_filesNotToUnitTest.cmake
|
|
|
|
|
ReservoirDataModel/Completions/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
|
2020-10-30 12:31:16 +01:00
|
|
|
FileInterface/CMakeLists_files.cmake
|
|
|
|
|
ProjectDataModel/CMakeLists_files.cmake
|
|
|
|
|
ProjectDataModel/AnalysisPlots/CMakeLists_files.cmake
|
|
|
|
|
ProjectDataModel/CorrelationPlots/CMakeLists_files.cmake
|
2021-03-11 00:57:01 +01:00
|
|
|
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
|
|
|
|
|
ProjectDataModel/Summary/CMakeLists_files.cmake
|
|
|
|
|
ProjectDataModel/Flow/CMakeLists_files.cmake
|
|
|
|
|
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
|
2020-11-04 10:36:50 +01:00
|
|
|
ProjectDataModel/StimPlanModel/CMakeLists_files.cmake
|
2021-02-25 16:38:56 +01:00
|
|
|
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
|
2021-10-26 14:41:43 +02:00
|
|
|
ProjectDataModel/Intersections/CMakeLists_files.cmake
|
2020-11-16 17:07:16 +01:00
|
|
|
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
|
2021-07-13 16:58:02 +02:00
|
|
|
ProjectDataModel/WellLog/CMakeLists_files.cmake
|
|
|
|
|
ProjectDataModel/WellMeasurement/CMakeLists_files.cmake
|
|
|
|
|
ProjectDataModel/WellPath/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
|
2021-08-23 11:58:32 +02:00
|
|
|
ProjectDataModelCommands/CommandRouter/CMakeLists_files.cmake
|
2024-05-03 09:58:55 +02:00
|
|
|
ProjectDataModel/VerticalFlowPerformance/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
|
2021-02-25 16:38:56 +01:00
|
|
|
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
|
2024-02-11 20:04:04 +01:00
|
|
|
SocketInterface/CMakeLists_files.cmake
|
2021-09-01 08:13:16 +02:00
|
|
|
)
|
2020-10-30 12:31:16 +01:00
|
|
|
|
2013-04-16 10:27:36 +02: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)
|
2013-04-16 10:27:36 +02:00
|
|
|
|
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
|
|
|
# ##############################################################################
|
2015-04-29 09:26:29 +02:00
|
|
|
# Sub-directory projects
|
2020-10-30 12:31:16 +01:00
|
|
|
# ##############################################################################
|
2015-04-29 09:26:29 +02:00
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# Odb api
|
|
|
|
|
#
|
2021-01-12 09:48:02 +01:00
|
|
|
if(RESINSIGHT_USE_ODB_API)
|
|
|
|
|
add_definitions(-DUSE_ODB_API)
|
2015-04-29 09:26:29 +02:00
|
|
|
endif()
|
2015-05-07 09:57:17 +02:00
|
|
|
|
2023-04-21 16:38:04 +02:00
|
|
|
#
|
|
|
|
|
# OpenVDS
|
|
|
|
|
#
|
2023-04-25 13:14:26 +02:00
|
|
|
list(APPEND RI_PRIVATE_INCLUDES ${RESINSIGHT_OPENVDS_API_DIR}/include)
|
2023-04-21 16:38:04 +02:00
|
|
|
|
2023-05-01 18:44:05 +02:00
|
|
|
#
|
|
|
|
|
# Configure include directories if opm-common.lib is downloaded and linked
|
|
|
|
|
# without building from source
|
|
|
|
|
#
|
2023-08-28 12:17:34 +02:00
|
|
|
if(NOT RESINSIGHT_BUILD_LIBS_FROM_SOURCE)
|
2023-05-01 18:44:05 +02:00
|
|
|
list(APPEND RI_PUBLIC_INCLUDES
|
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../ThirdParty/custom-opm-common/opm-common
|
|
|
|
|
)
|
|
|
|
|
list(
|
|
|
|
|
APPEND
|
|
|
|
|
RI_PRIVATE_INCLUDES
|
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../ThirdParty/custom-opm-common/generated-opm-common/include
|
|
|
|
|
)
|
|
|
|
|
endif()
|
|
|
|
|
|
2017-08-08 07:07:22 +02:00
|
|
|
#
|
2020-10-30 12:31:16 +01:00
|
|
|
# HDF5
|
|
|
|
|
#
|
|
|
|
|
if(RESINSIGHT_FOUND_HDF5)
|
2021-04-11 08:51:32 +02:00
|
|
|
|
2021-04-11 20:53:27 +02:00
|
|
|
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
|
|
|
|
|
)
|
2021-04-11 20:53:27 +02:00
|
|
|
|
|
|
|
|
list(APPEND CPP_SOURCES ${HDF5_FILES})
|
2017-03-23 07:00:00 +01:00
|
|
|
|
2020-10-30 12:31:16 +01:00
|
|
|
add_definitions(-DUSE_HDF5)
|
2024-02-11 20:04:04 +01:00
|
|
|
add_definitions(-DH5_BUILT_AS_DYNAMIC_LIB)
|
2019-09-16 13:29:44 +02:00
|
|
|
|
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
|
2019-09-16 13:29:44 +02:00
|
|
|
|
2021-04-11 20:53:27 +02:00
|
|
|
source_group("FileInterface\\HDF5" FILES ${HDF5_FILES})
|
2021-04-08 15:53:38 +02:00
|
|
|
|
2017-08-31 16:22:50 +02:00
|
|
|
endif()
|
|
|
|
|
|
2020-10-30 12:31:16 +01:00
|
|
|
# ##############################################################################
|
2015-04-29 09:26:29 +02:00
|
|
|
# Qt specifics: Moc, ui, resources
|
2020-10-30 12:31:16 +01:00
|
|
|
# ##############################################################################
|
2012-05-18 09:45:23 +02:00
|
|
|
|
2020-10-30 12:31:16 +01:00
|
|
|
set(QT_MOC_HEADERS
|
|
|
|
|
${QT_MOC_HEADERS} ProjectDataModel/RimMimeData.h
|
2021-10-26 14:41:43 +02:00
|
|
|
ProjectDataModel/Intersections/RimBoxIntersection.h
|
|
|
|
|
SocketInterface/RiaSocketServer.h
|
2021-09-01 08:13:16 +02:00
|
|
|
)
|
2019-05-29 08:14:02 +02:00
|
|
|
|
2020-10-30 12:31:16 +01:00
|
|
|
qt5_wrap_cpp(MOC_SOURCE_FILES ${QT_MOC_HEADERS})
|
|
|
|
|
qt5_wrap_ui(FORM_FILES_CPP ${QT_UI_FILES})
|
2019-05-29 08:14:02 +02:00
|
|
|
|
2020-10-30 12:31:16 +01:00
|
|
|
# ##############################################################################
|
2013-04-18 07:33:45 +02:00
|
|
|
# Create source groups - see also included CMakeLists_files.cmake
|
2020-10-30 12:31:16 +01:00
|
|
|
# ##############################################################################
|
|
|
|
|
source_group("ModelVisualization" FILES ${MODEL_VISUALIZATION_FILES})
|
2012-05-18 09:45:23 +02:00
|
|
|
|
2024-02-11 20:04:04 +01:00
|
|
|
list(APPEND ALL_SOURCE_FILES ${CPP_SOURCES} ${MOC_SOURCE_FILES}
|
|
|
|
|
${FORM_FILES_CPP}
|
2021-09-01 08:13:16 +02:00
|
|
|
)
|
2021-01-06 15:03:38 +01:00
|
|
|
|
|
|
|
|
add_library(${PROJECT_NAME} OBJECT ${ALL_SOURCE_FILES})
|
2013-08-22 08:03:27 +02:00
|
|
|
|
2020-02-03 22:17:46 +01:00
|
|
|
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)
|
2020-02-03 22:17:46 +01:00
|
|
|
endif()
|
|
|
|
|
|
2022-01-26 10:08:28 +01:00
|
|
|
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
|
|
|
)
|
2022-01-26 10:08:28 +01: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
|
2022-01-26 10:08:28 +01:00
|
|
|
-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
|
2022-01-26 10:08:28 +01:00
|
|
|
)
|
|
|
|
|
endif()
|
2020-02-03 22:17:46 +01:00
|
|
|
|
2022-01-26 10:08:28 +01:00
|
|
|
if(RESINSIGHT_TREAT_WARNINGS_AS_ERRORS)
|
|
|
|
|
if(MSVC)
|
|
|
|
|
target_compile_options(ApplicationLibCode PRIVATE /WX)
|
|
|
|
|
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
|
|
|
|
target_compile_options(ApplicationLibCode PRIVATE -Werror)
|
2020-10-30 12:31:16 +01:00
|
|
|
endif()
|
2020-04-01 08:20:52 +02:00
|
|
|
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
|
2021-01-06 15:03:38 +01:00
|
|
|
# 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")
|
2020-12-15 15:54:07 +01:00
|
|
|
|
2023-11-17 10:43:21 +01:00
|
|
|
message(STATUS "CMAKE_CXX_COMPILER_VERSION ${CMAKE_CXX_COMPILER_VERSION}")
|
|
|
|
|
|
2020-10-30 12:31:16 +01:00
|
|
|
if(CMAKE_CXX_COMPILER_VERSION LESS_EQUAL 19.14)
|
|
|
|
|
# The following warning is generated over 800 times from a qwt header only
|
|
|
|
|
# using VS2015 Disabling temporarily warning C4505 'function' : unreferenced
|
|
|
|
|
# local function has been removed
|
2020-12-15 15:54:07 +01:00
|
|
|
set(BUILD_FLAGS_FOR_MSVC "${BUILD_FLAGS_FOR_MSVC} /wd4505")
|
2020-10-30 12:31:16 +01:00
|
|
|
endif()
|
2020-04-01 08:20:52 +02:00
|
|
|
|
2023-11-17 10:43:21 +01:00
|
|
|
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()
|
|
|
|
|
|
2020-12-15 15:54:07 +01:00
|
|
|
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}
|
|
|
|
|
)
|
2020-11-03 14:15:37 +01:00
|
|
|
|
|
|
|
|
endif()
|
|
|
|
|
|
2020-10-30 12:31:16 +01:00
|
|
|
# ##############################################################################
|
2015-04-29 09:26:29 +02:00
|
|
|
# Set up libraries and dependent projects to link with
|
2020-10-30 12:31:16 +01:00
|
|
|
# ##############################################################################
|
2015-04-29 09:26:29 +02:00
|
|
|
|
2020-10-30 12:31:16 +01:00
|
|
|
set(LINK_LIBRARIES
|
2020-10-26 11:25:23 +01:00
|
|
|
Eigen3::Eigen
|
2020-11-03 14:15:37 +01:00
|
|
|
${THIRD_PARTY_LIBRARIES}
|
|
|
|
|
${OPENGL_LIBRARIES}
|
|
|
|
|
${QT_LIBRARIES}
|
2017-01-21 12:26:21 +01:00
|
|
|
${OPM_LIBRARIES}
|
2016-05-26 14:49:13 +02:00
|
|
|
${APP_FWK_LIBRARIES}
|
|
|
|
|
${VIZ_FWK_LIBRARIES}
|
2021-09-01 08:13:16 +02:00
|
|
|
${RI_LIBRARIES}
|
|
|
|
|
)
|
2017-04-05 08:34:52 +02:00
|
|
|
|
2020-10-30 12:31:16 +01:00
|
|
|
# According to ivarun this is needed on OpenSuse, and Fedora. See:
|
|
|
|
|
# https://github.com/OPM/ResInsight/pull/7
|
|
|
|
|
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
|
|
|
|
list(APPEND EXTERNAL_LINK_LIBRARIES rt)
|
2012-10-02 10:17:52 +02:00
|
|
|
endif()
|
|
|
|
|
|
2021-09-01 08:13:16 +02:00
|
|
|
target_link_libraries(
|
2024-02-11 20:04:04 +01:00
|
|
|
${PROJECT_NAME} PUBLIC ${LINK_LIBRARIES} ${EXTERNAL_LINK_LIBRARIES}
|
2021-09-01 08:13:16 +02:00
|
|
|
)
|
2021-01-06 15:03:38 +01:00
|
|
|
|
|
|
|
|
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
|
|
|
|
|
${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/WellMeasurement
|
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ProjectDataModel/WellPath
|
|
|
|
|
${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
|
2024-02-11 20:04:04 +01:00
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ResultStatisticsCache
|
2023-04-25 13:14:26 +02:00
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/SocketInterface
|
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/UserInterface
|
2024-02-11 20:04:04 +01:00
|
|
|
${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
|
2024-01-03 11:55:35 +01:00
|
|
|
${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
|
|
|
)
|
2016-06-08 12:18:36 +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
|
|
|
# ##############################################################################
|
2016-06-08 12:18:36 +02: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
|
2020-01-23 13:41:31 +01:00
|
|
|
${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
|
|
|
|
|
# Exclude files including opm-common
|
|
|
|
|
ProjectDataModel/RimVfpTableExtractor.cpp
|
2021-09-01 08:13:16 +02:00
|
|
|
ProjectDataModel/RimVfpPlot.cpp
|
2024-05-16 15:00:05 +02:00
|
|
|
ProjectDataModel/RiaOpmParserTools.cpp
|
2021-09-01 08:13:16 +02:00
|
|
|
)
|
2016-06-29 08:03:59 +02:00
|
|
|
|
2020-01-23 13:41:31 +01:00
|
|
|
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)
|
2020-01-23 13:41:31 +01:00
|
|
|
endif()
|
2024-02-11 20:04:04 +01:00
|
|
|
|
|
|
|
|
# ##############################################################################
|
|
|
|
|
# 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()
|