cmake_minimum_required (VERSION 2.8.12) # Languages and global compiler settings if(CMAKE_VERSION VERSION_LESS 3.8) message(WARNING "CMake version does not support c++17, guessing -std=c++17") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") else() set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) endif() if(MSVC) add_definitions( "/wd4996 /wd4244 /wd4267 /wd4101 /wd4477" ) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP /permissive-") endif(MSVC) if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-parameter -Wno-switch -Wno-sign-compare -Wno-deprecated-copy -Wno-missing-field-initializers") endif() if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-sign-compare -Wno-missing-field-initializers -Wno-deprecated-copy") endif() project (custom-opm-common) find_package(Boost) include_directories( opm-common opm-common/external/cjson generated-opm-common generated-opm-common/include ) add_definitions(-DFMT_HEADER_ONLY) include_directories(SYSTEM ../fmtlib/include) # Set defines to include requred files set(ENABLE_ECL_INPUT true) #set(ENABLE_ECL_OUTPUT true) include(opm-common/CMakeLists_files.cmake) set(opm_parser_source_files_short_path ${MAIN_SOURCE_FILES} ) foreach (file ${opm_parser_source_files_short_path} ) list(APPEND opm_parser_source_files_long_path "opm-common/${file}" ) endforeach() set(opm_parser_source_files ${opm_parser_source_files_long_path} ${opm_parser_generated_source_files} ) # Append generated sources list(INSERT opm-common_SOURCES 0 generated-opm-common/ParserInit.cpp) foreach (name A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) list(INSERT opm-common_SOURCES 0 generated-opm-common/ParserKeywords/${name}.cpp) endforeach() if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9.0) list(APPEND ADDITIONAL_LINK_LIBRARIES stdc++fs) endif() endif() if(MSVC) list(APPEND opm-common_SOURCES opm-common/cross-platform/windows/Substitutes.cpp ) endif(MSVC) add_library(${PROJECT_NAME} STATIC ${opm_parser_source_files_long_path} ${opm-common_SOURCES} ## Missing files when only ENABLE_ECL_INPUT is defined opm-common/src/opm/io/eclipse/EclFile.cpp opm-common/src/opm/io/eclipse/EclOutput.cpp opm-common/src/opm/io/eclipse/EclUtil.cpp opm-common/src/opm/io/eclipse/EGrid.cpp opm-common/src/opm/io/eclipse/ESmry.cpp opm-common/src/opm/io/eclipse/ExtESmry.cpp opm-common/src/opm/io/eclipse/EInit.cpp opm-common/src/opm/io/eclipse/ERft.cpp # Required for use of static function RstConnection::inverse_peaceman opm-common/src/opm/io/eclipse/rst/connection.cpp # Required for use of RstHeader::restart_info opm-common/src/opm/io/eclipse/rst/action.cpp opm-common/src/opm/io/eclipse/rst/aquifer.cpp opm-common/src/opm/io/eclipse/rst/connection.cpp opm-common/src/opm/io/eclipse/rst/group.cpp opm-common/src/opm/io/eclipse/rst/header.cpp opm-common/src/opm/io/eclipse/rst/network.cpp opm-common/src/opm/io/eclipse/rst/segment.cpp opm-common/src/opm/io/eclipse/rst/state.cpp opm-common/src/opm/io/eclipse/rst/udq.cpp opm-common/src/opm/io/eclipse/rst/well.cpp opm-common/src/opm/output/eclipse/InteHEAD.cpp opm-common/src/opm/output/eclipse/UDQDims.cpp opm-common/src/opm/output/eclipse/CreateActionRSTDims.cpp # 2022.06 additional includes opm-common/src/opm/io/eclipse/ERst.cpp opm-common/src/opm/io/eclipse/RestartFileView.cpp opm-common/cross-platform/windows/Substitutes.cpp ) if(RESINSIGHT_ENABLE_UNITY_BUILD) set(UNITY_EXCLUDE_FILES opm-common/src/opm/parser/eclipse/Deck/UDAValue.cpp opm-common/src/opm/parser/eclipse/EclipseState/Schedule/Well/WellConnections.cpp opm-common/src/opm/parser/eclipse/EclipseState/Schedule/UDQ/UDQFunction.cpp opm-common/src/opm/parser/eclipse/EclipseState/Schedule/Well/WListManager.cpp opm-common/src/opm/parser/eclipse/EclipseState/Schedule/MSW/SpiralICD.cpp opm-common/src/opm/io/eclipse/EclOutput.cpp opm-common/src/opm/io/eclipse/ESmry.cpp opm-common/src/opm/io/eclipse/EGrid.cpp ) foreach(fileToExclude ${UNITY_EXCLUDE_FILES}) set_source_files_properties(${fileToExclude} PROPERTIES SKIP_UNITY_BUILD_INCLUSION TRUE) endforeach(fileToExclude) endif() find_path(BOOST_SPIRIT_INCLUDE_DIRS "boost/spirit.hpp" HINTS ${Boost_INCLUDE_DIRS}) target_link_libraries(custom-opm-common ${ADDITIONAL_LINK_LIBRARIES} ) target_include_directories(custom-opm-common PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/opm-common ${CMAKE_CURRENT_SOURCE_DIR}/generated-opm-common/include PRIVATE ${BOOST_SPIRIT_INCLUDE_DIRS} )