mirror of
https://github.com/OPM/ResInsight.git
synced 2024-12-29 10:21:54 -06:00
f6109cab2b
* Disable logging text for timing of geometry surface creation * Suppress text output from windeployqt * Bump to 2024.09.3-dev.05
576 lines
18 KiB
CMake
576 lines
18 KiB
CMake
project(ApplicationExeCode)
|
|
|
|
# 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
|
|
OPTIONAL_COMPONENTS Charts
|
|
)
|
|
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()
|
|
set(CMAKE_AUTORCC ON)
|
|
|
|
if(MSVC)
|
|
# Avoid Qt warnings about macro redefinitions for math constants
|
|
add_definitions(-D_USE_MATH_DEFINES)
|
|
endif()
|
|
|
|
# ##############################################################################
|
|
# Defining all the source (and header) files
|
|
# ##############################################################################
|
|
|
|
set(CODE_HEADER_FILES RiaMainTools.h)
|
|
|
|
set(CODE_SOURCE_FILES RiaMain.cpp RiaMainTools.cpp)
|
|
|
|
if(RESINSIGHT_ENABLE_GRPC)
|
|
list(APPEND CODE_HEAD_FILES RiaGrpcConsoleApplication.h
|
|
RiaGrpcGuiApplication.h
|
|
)
|
|
list(APPEND CODE_SOURCE_FILES RiaGrpcConsoleApplication.cpp
|
|
RiaGrpcGuiApplication.cpp
|
|
)
|
|
|
|
list(APPEND QT_MOC_HEADERS RiaGrpcConsoleApplication.h
|
|
RiaGrpcGuiApplication.h
|
|
)
|
|
|
|
# Find Protobuf installation Looks for protobuf-config.cmake file installed by
|
|
# Protobuf's cmake installation.
|
|
set(protobuf_MODULE_COMPATIBLE ON)
|
|
find_package(Protobuf CONFIG 3.0 QUIET)
|
|
|
|
if(Protobuf_FOUND)
|
|
# Find gRPC installation Looks for gRPCConfig.cmake file installed by gRPC's
|
|
# cmake installation.
|
|
find_package(gRPC CONFIG REQUIRED)
|
|
set(_PROTOBUF_LIBPROTOBUF protobuf::libprotobuf)
|
|
set(_GRPC_GRPCPP_UNSECURE gRPC::grpc++_unsecure gRPC::grpc_unsecure
|
|
gRPC::gpr
|
|
)
|
|
set(GRPC_LINK_LIBRARIES ${_GRPC_GRPCPP_UNSECURE} ${_PROTOBUF_LIBPROTOBUF})
|
|
else()
|
|
set(RESINSIGHT_GRPC_INSTALL_PREFIX
|
|
""
|
|
CACHE PATH "gRPC : Install prefix for gRPC"
|
|
)
|
|
set(ENV{PKG_CONFIG_PATH} "${RESINSIGHT_GRPC_INSTALL_PREFIX}/lib/pkgconfig")
|
|
find_package(PkgConfig REQUIRED)
|
|
pkg_check_modules(
|
|
GRPC
|
|
REQUIRED
|
|
grpc
|
|
grpc++_unsecure>=1.20
|
|
grpc_unsecure
|
|
gpr
|
|
protobuf
|
|
libcares
|
|
)
|
|
endif()
|
|
endif()
|
|
|
|
list(APPEND CPP_SOURCES ${CODE_SOURCE_FILES})
|
|
|
|
# ##############################################################################
|
|
# Qt specifics: Moc, ui, resources
|
|
# ##############################################################################
|
|
|
|
# NOTE! Resources in subfolders must append to QRC_FILES using the following
|
|
# statement set( QRC_FILES ${QRC_FILES}
|
|
# ${CMAKE_CURRENT_SOURCE_DIR}/Resources/myLibrary.qrc PARENT_SCOPE )
|
|
|
|
set(QRC_FILES ${QRC_FILES} Resources/ResInsight.qrc)
|
|
|
|
# Adding resource (RC) files for Windows
|
|
if(MSVC)
|
|
set(WIN_RESOURCE Resources/ResInsight.rc)
|
|
endif()
|
|
|
|
# ##############################################################################
|
|
# Set up the main executable with its source files
|
|
# ##############################################################################
|
|
|
|
# Default behaviour for a Qt application is a console application, resulting in
|
|
# a console window always being launced at startup The following statement is
|
|
# used to control this behaviour set_target_properties( MY_TARGET PROPERTIES
|
|
# LINK_FLAGS_DEBUG "/SUBSYSTEM:WINDOWS") This setting i not honored by Cmake -
|
|
# http://public.kitware.com/Bug/view.php?id=14326 We use the following
|
|
# workaround described in the bug report ADD_EXECUTABLE(${TARGET_NAME} WIN32
|
|
# ${SRC}) See CMake symbol WIN32_EXECUTABLE for details
|
|
|
|
if(MSVC)
|
|
set(EXE_FILES WIN32)
|
|
elseif(APPLE)
|
|
set(EXE_FILES MACOSX_BUNDLE)
|
|
endif()
|
|
set(EXE_FILES
|
|
${EXE_FILES}
|
|
${CPP_SOURCES}
|
|
${MOC_SOURCE_FILES}
|
|
${FORM_FILES_CPP}
|
|
${QRC_FILES}
|
|
${WIN_RESOURCE}
|
|
${HEADER_FILES}
|
|
${REFERENCED_CMAKE_FILES}
|
|
.clang-format
|
|
.clang-tidy
|
|
)
|
|
|
|
qt_add_executable(ResInsight ${EXE_FILES})
|
|
|
|
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
|
set_target_properties(
|
|
ResInsight
|
|
PROPERTIES
|
|
COMPILE_FLAGS
|
|
"-Wall -Wno-unused-parameter -Wno-reorder -Wno-parentheses -Wno-switch"
|
|
)
|
|
# Treat warnings as errors if asked to do so
|
|
if(RESINSIGHT_TREAT_WARNINGS_AS_ERRORS)
|
|
set_target_properties(
|
|
ResInsight
|
|
PROPERTIES
|
|
COMPILE_FLAGS
|
|
"-Wall -Wno-unused-parameter -Wno-reorder -Wno-parentheses -Wno-switch -Werror"
|
|
)
|
|
endif()
|
|
|
|
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
|
set_target_properties(
|
|
ResInsight
|
|
PROPERTIES
|
|
COMPILE_FLAGS
|
|
"-Wall -Wno-unused-parameter -Wno-reorder -Wno-parentheses -Wno-switch -Wno-delete-abstract-non-virtual-dtor -Wno-undefined-var-template -Wno-invalid-source-encoding -Wno-enum-compare -Wno-call-to-pure-virtual-from-ctor-dtor -Wno-unused-variable -Wno-unused-private-field -Wno-unused-lambda-capture -Wno-delete-non-abstract-non-virtual-dtor -Wno-braced-scalar-init -Wno-tautological-constant-out-of-range-compare"
|
|
)
|
|
endif()
|
|
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(ResInsight PROPERTIES COMPILE_FLAGS "/W3 /wd4190
|
|
# /wd4100 /wd4127")
|
|
|
|
set(BUILD_FLAGS_FOR_MSVC "/wd4190 /wd4100 /wd4127 /wd4245 /wd4005")
|
|
|
|
message(STATUS "BUILD_FLAGS_FOR_MSVC ${BUILD_FLAGS_FOR_MSVC}")
|
|
set_target_properties(
|
|
ResInsight PROPERTIES COMPILE_FLAGS ${BUILD_FLAGS_FOR_MSVC}
|
|
)
|
|
|
|
endif()
|
|
|
|
# ##############################################################################
|
|
# Application icon for MacOS X bundle
|
|
# ##############################################################################
|
|
|
|
if(APPLE)
|
|
add_custom_command(
|
|
OUTPUT Resources/ResInsight.icns
|
|
COMMAND
|
|
sips -s format icns ${CMAKE_CURRENT_SOURCE_DIR}/Resources/AppLogo48x48.png
|
|
--out ${CMAKE_CURRENT_BINARY_DIR}/Resources/ResInsight.icns
|
|
COMMENT Converting application icon
|
|
)
|
|
add_custom_target(
|
|
ResInsight-icns
|
|
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/Resources/ResInsight.icns
|
|
)
|
|
add_dependencies(ResInsight ResInsight-icns)
|
|
set_target_properties(
|
|
ResInsight PROPERTIES MACOSX_BUNDLE_ICON_FILE
|
|
${CMAKE_CURRENT_BINARY_DIR}/Resources/ResInsight.icns
|
|
)
|
|
endif()
|
|
|
|
if(RESINSIGHT_ENABLE_GRPC)
|
|
list(APPEND THIRD_PARTY_LIBRARIES ${GRPC_LINK_LIBRARIES})
|
|
|
|
if(MSVC)
|
|
set_target_properties(
|
|
ResInsight PROPERTIES LINK_FLAGS_RELWITHDEBINFO
|
|
"/NODEFAULTLIB:MSVCRTD.lib"
|
|
)
|
|
endif()
|
|
endif()
|
|
|
|
# ##############################################################################
|
|
# Set up libraries and dependent projects to link with
|
|
# ##############################################################################
|
|
|
|
# According to ivarun rt is needed on OpenSuse, and Fedora. See:
|
|
# https://github.com/OPM/ResInsight/pull/7
|
|
#
|
|
# atomic is needed by openzgy library
|
|
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
|
list(APPEND THIRD_PARTY_LIBRARIES rt atomic)
|
|
endif()
|
|
|
|
set(LINK_LIBRARIES
|
|
${THIRD_PARTY_LIBRARIES}
|
|
${OPENGL_LIBRARIES}
|
|
${QT_LIBRARIES}
|
|
${OPM_LIBRARIES}
|
|
${APP_FWK_LIBRARIES}
|
|
${VIZ_FWK_LIBRARIES}
|
|
ApplicationLibCode
|
|
Commands
|
|
RigGeoMechDataModel
|
|
RifGeoMechFileInterface
|
|
)
|
|
|
|
if(RESINSIGHT_ENABLE_GRPC)
|
|
list(APPEND LINK_LIBRARIES GrpcInterface)
|
|
endif()
|
|
|
|
if(RESINSIGHT_USE_ODB_API)
|
|
add_definitions(-DUSE_ODB_API)
|
|
list(APPEND LINK_LIBRARIES RifOdbReader)
|
|
endif()
|
|
|
|
target_link_libraries(ResInsight PRIVATE ${LINK_LIBRARIES})
|
|
|
|
if(UNIX AND NOT APPLE)
|
|
target_link_libraries(ResInsight PRIVATE xcb)
|
|
endif()
|
|
|
|
# ##############################################################################
|
|
# 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
|
|
)
|
|
|
|
if(RESINSIGHT_ENABLE_UNITY_BUILD)
|
|
foreach(fileToExclude ${UNITY_EXCLUDE_FILES})
|
|
set_source_files_properties(
|
|
${fileToExclude} PROPERTIES SKIP_UNITY_BUILD_INCLUSION TRUE
|
|
)
|
|
endforeach(fileToExclude)
|
|
endif()
|
|
|
|
# ##############################################################################
|
|
# Copy Dlls on MSVC
|
|
# ##############################################################################
|
|
|
|
# create an empty library target that will be used to copy files to the build
|
|
# folder
|
|
add_library(ResInsightDummyTarget EXCLUDE_FROM_ALL empty.cpp)
|
|
set_property(TARGET ResInsightDummyTarget PROPERTY FOLDER "FileCopyTargets")
|
|
|
|
# create a custom target that copies the files to the build folder
|
|
foreach(riFileName ${RI_FILENAMES})
|
|
list(
|
|
APPEND
|
|
copyCommands
|
|
COMMAND
|
|
${CMAKE_COMMAND}
|
|
-E
|
|
copy_if_different
|
|
${riFileName}
|
|
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
|
|
)
|
|
endforeach()
|
|
add_custom_target(PreBuildFileCopy ${copyCommands})
|
|
set_property(TARGET PreBuildFileCopy PROPERTY FOLDER "FileCopyTargets")
|
|
|
|
# Make ResInsight depend on the prebuild target.
|
|
add_dependencies(ResInsight PreBuildFileCopy)
|
|
|
|
# Generate Python code in a target that is part of ALL_BUILD and depends on
|
|
# ResInsight
|
|
if(RESINSIGHT_ENABLE_GRPC)
|
|
set(GENERATED_CLASSES_FILE
|
|
${CMAKE_SOURCE_DIR}/GrpcInterface/Python/rips/generated/generated_classes.py
|
|
)
|
|
add_custom_command(
|
|
OUTPUT ${GENERATED_CLASSES_FILE}
|
|
COMMAND ResInsight ARGS --console --generate ${GENERATED_CLASSES_FILE}
|
|
DEPENDS ResInsight
|
|
COMMENT "Generating ${GENERATED_CLASSES_FILE}"
|
|
)
|
|
add_custom_target(
|
|
RipsGeneratedPythonClasses ALL SOURCES ${GENERATED_CLASSES_FILE}
|
|
)
|
|
source_group("Source Files" ${GENERATED_CLASSES_FILE})
|
|
add_dependencies(RipsGeneratedPythonClasses ResInsight)
|
|
|
|
# Copy the Python folder to build folder. This will ease debugging of Python
|
|
# scripts
|
|
add_custom_command(
|
|
TARGET RipsGeneratedPythonClasses
|
|
POST_BUILD
|
|
COMMAND
|
|
${CMAKE_COMMAND} -E copy_directory
|
|
"${CMAKE_SOURCE_DIR}/GrpcInterface/Python"
|
|
$<TARGET_FILE_DIR:ResInsight>/Python
|
|
)
|
|
|
|
endif(RESINSIGHT_ENABLE_GRPC)
|
|
|
|
# ##############################################################################
|
|
# Install
|
|
# ##############################################################################
|
|
|
|
# bundle libraries together with private installation
|
|
if(RESINSIGHT_PRIVATE_INSTALL)
|
|
|
|
if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
|
# put a .exe.local file in the target directory to pick up DLLs from there
|
|
install(
|
|
CODE "exec_program (\"${CMAKE_COMMAND}\" ARGS -E touch \$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}ResInsight${CMAKE_EXECUTABLE_SUFFIX}.local)"
|
|
)
|
|
|
|
set(RESINSIGHT_FILES ${RI_FILENAMES})
|
|
|
|
# install GRPC-related DLLs and generated_classes.py
|
|
if(RESINSIGHT_ENABLE_GRPC)
|
|
set(ZLIB_DLL "$<IF:$<CONFIG:Debug>,zlibd1,zlib1>")
|
|
set(PROTOBUF_DLL "$<IF:$<CONFIG:Debug>,libprotobufd,libprotobuf>")
|
|
set(GRPC_DLL_NAMES ${PROTOBUF_DLL} cares ${ZLIB_DLL} abseil_dll)
|
|
foreach(dllname ${GRPC_DLL_NAMES})
|
|
install(FILES $<TARGET_FILE_DIR:ResInsight>/${dllname}.dll
|
|
DESTINATION ${RESINSIGHT_INSTALL_FOLDER}
|
|
)
|
|
endforeach(dllname ${GRPC_DLL_NAMES})
|
|
install(
|
|
FILES
|
|
${CMAKE_SOURCE_DIR}/GrpcInterface/Python/rips/generated/generated_classes.py
|
|
DESTINATION ${RESINSIGHT_INSTALL_FOLDER}/Python/rips/generated
|
|
)
|
|
endif()
|
|
|
|
# Boost
|
|
find_package(Boost REQUIRED filesystem system)
|
|
|
|
get_property(
|
|
_filepath
|
|
TARGET "Boost::filesystem"
|
|
PROPERTY LOCATION_RELEASE
|
|
)
|
|
|
|
# The location of Boost is based on the file structure as installed by vcpkg
|
|
# The DLLs are located in the /bin folder
|
|
get_filename_component(_dir ${_filepath} PATH)
|
|
string(REPLACE "/lib" "/bin" _dir ${_dir})
|
|
|
|
# Use file clobbing, as the dlls are decorated with local compiler info
|
|
file(GLOB RI_BOOST_DLLS ${_dir}/boost_filesystem*.dll)
|
|
|
|
install(
|
|
FILES ${RI_BOOST_DLLS}
|
|
DESTINATION ${RESINSIGHT_INSTALL_FOLDER}
|
|
CONFIGURATIONS Debug Release RelWithDebInfo
|
|
)
|
|
|
|
# CRT
|
|
set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP ON)
|
|
set(CMAKE_INSTALL_OPENMP_LIBRARIES ON)
|
|
include(InstallRequiredSystemLibraries)
|
|
install(PROGRAMS ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS}
|
|
DESTINATION ${RESINSIGHT_INSTALL_FOLDER}
|
|
)
|
|
|
|
endif()
|
|
|
|
install(TARGETS ResInsight DESTINATION ${RESINSIGHT_INSTALL_FOLDER})
|
|
install(FILES ${RESINSIGHT_FILES} DESTINATION ${RESINSIGHT_INSTALL_FOLDER})
|
|
|
|
if(WIN32 AND WINDEPLOYQT_EXECUTABLE)
|
|
# Add a post-build command to run windeployqt. This makes it possible to
|
|
# debug the binary from a debugger without any manual steps. This also fixes
|
|
# an issue related to the Install() command and usage of windeployqt as part
|
|
# of installation. The installation tried to use windeployqt on the
|
|
# executable in the build directory, which did not find the Qt libraries.
|
|
#
|
|
# TODO: This command copies all required dlls, so we should probably not use
|
|
# the Install() command to copy external dlls dependencies.
|
|
#
|
|
# The statements " >NUL 2>NUL" are used to suppress text output from
|
|
# windeployqt. ">NUL" suppresses standard output. "2>NUL" suppresses
|
|
# standard error.
|
|
#
|
|
add_custom_command(
|
|
TARGET ResInsight
|
|
POST_BUILD
|
|
COMMAND
|
|
${WINDEPLOYQT_EXECUTABLE} $<TARGET_FILE:ResInsight>
|
|
"$<IF:$<CONFIG:Debug>,--debug,--release>" --no-translations >NUL 2>NUL
|
|
COMMENT
|
|
"Running windeployqt to deploy Qt dependencies to the build folder, required by install()"
|
|
)
|
|
|
|
# Running windeployqt to deploy Qt dependencies to the install folder"
|
|
install(
|
|
TARGETS ResInsight
|
|
DESTINATION ${RESINSIGHT_INSTALL_FOLDER}
|
|
RUNTIME_DEPENDENCIES PRE_EXCLUDE_REGEXES "api-ms-" "ext-ms-"
|
|
POST_EXCLUDE_REGEXES ".*system32/.*\\.dll"
|
|
)
|
|
endif()
|
|
|
|
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
|
install(
|
|
FILES ${CMAKE_CURRENT_SOURCE_DIR}/resinsight
|
|
DESTINATION ${RESINSIGHT_INSTALL_FOLDER}
|
|
PERMISSIONS
|
|
OWNER_READ
|
|
OWNER_WRITE
|
|
OWNER_EXECUTE
|
|
GROUP_READ
|
|
GROUP_EXECUTE
|
|
WORLD_READ
|
|
WORLD_EXECUTE
|
|
)
|
|
endif()
|
|
|
|
else(RESINSIGHT_PRIVATE_INSTALL)
|
|
# binaries go in /usr/bin
|
|
install(TARGETS ResInsight DESTINATION bin)
|
|
# license go in /usr/share/doc
|
|
install(FILES ${RESINSIGHT_LICENSE_FILES} DESTINATION share/doc/ResInsight)
|
|
# no bundled libraries for system install application icon
|
|
install(
|
|
FILES ${CMAKE_CURRENT_SOURCE_DIR}/Resources/AppLogo48x48.png
|
|
DESTINATION share/icons/hicolor/48x48/apps
|
|
RENAME ResInsight.png
|
|
)
|
|
# desktop environment icon; remember to call `update-desktop-database` in
|
|
# package post-install scripts
|
|
configure_file(
|
|
${CMAKE_CURRENT_SOURCE_DIR}/resinsight.desktop.in
|
|
${CMAKE_CURRENT_BINARY_DIR}/resinsight.desktop @ONLY
|
|
)
|
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/resinsight.desktop
|
|
DESTINATION share/applications
|
|
)
|
|
endif(RESINSIGHT_PRIVATE_INSTALL)
|
|
|
|
# ##############################################################################
|
|
# Optional install of OpensSSL 3 for required platforms like RHEL8
|
|
# ##############################################################################
|
|
|
|
set(CUSTOM_OPENSSL_FILES libcrypto.so libcrypto.so.3 libssl.so libssl.so.3)
|
|
foreach(file ${CUSTOM_OPENSSL_FILES})
|
|
if(EXISTS
|
|
"${CMAKE_BINARY_DIR}/vcpkg_installed_custom/x64-linux-dynamic/lib/${file}"
|
|
)
|
|
install(
|
|
FILES
|
|
${CMAKE_BINARY_DIR}/vcpkg_installed_custom/x64-linux-dynamic/lib/${file}
|
|
DESTINATION lib64
|
|
)
|
|
endif()
|
|
endforeach()
|
|
|
|
# ##############################################################################
|
|
# Installation packaging
|
|
# ##############################################################################
|
|
|
|
if(Qt6Widgets_VERSION VERSION_LESS 6.5.0)
|
|
message("Detected Qt version ${Qt6Widgets_VERSION}")
|
|
message(
|
|
"Install target is not complete as Qt 6.5 is required to use qt_generate_deploy_app_script()"
|
|
)
|
|
else()
|
|
qt_generate_deploy_app_script(
|
|
TARGET ResInsight OUTPUT_SCRIPT deploy_script NO_UNSUPPORTED_PLATFORM_ERROR
|
|
NO_TRANSLATIONS
|
|
)
|
|
install(SCRIPT ${deploy_script})
|
|
endif()
|
|
|
|
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
|
set(CPACK_GENERATOR TGZ)
|
|
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
|
|
set(CPACK_GENERATOR ZIP)
|
|
endif()
|
|
|
|
# Handling of system name on Windows
|
|
if(${CMAKE_SYSTEM_NAME} MATCHES Windows)
|
|
if(CMAKE_CL_64)
|
|
set(CPACK_SYSTEM_NAME win64)
|
|
else()
|
|
set(CPACK_SYSTEM_NAME win32)
|
|
endif()
|
|
endif()
|
|
|
|
# Append el5 when compiled on RHEL5 and el6 if compiled on RHEL6
|
|
string(REGEX MATCH "el[6,7,8]?" RESINSIGHT_RHEL_SYSTEM_NAME ${CMAKE_SYSTEM})
|
|
|
|
set(RESINSIGHT_PACKAGE_NAME "ResInsight")
|
|
|
|
set(RESINSIGHT_PACKAGE_NAME "${RESINSIGHT_PACKAGE_NAME}-${STRPRODUCTVER}")
|
|
|
|
if(NOT ${RESINSIGHT_ODB_API_DIR} EQUAL "")
|
|
set(RESINSIGHT_PACKAGE_NAME "${RESINSIGHT_PACKAGE_NAME}_odb")
|
|
endif()
|
|
|
|
if(NOT ${OCTAVE_VERSION_STRING} EQUAL "")
|
|
set(RESINSIGHT_PACKAGE_NAME
|
|
"${RESINSIGHT_PACKAGE_NAME}_oct-${OCTAVE_VERSION_STRING}"
|
|
)
|
|
endif()
|
|
|
|
# Append el5 when compiled on RHEL5 and el6 if compiled on RHEL6
|
|
if(NOT "${RESINSIGHT_RHEL_SYSTEM_NAME}" STREQUAL "")
|
|
set(RESINSIGHT_PACKAGE_NAME
|
|
"${RESINSIGHT_PACKAGE_NAME}_${RESINSIGHT_RHEL_SYSTEM_NAME}"
|
|
)
|
|
else()
|
|
set(RESINSIGHT_PACKAGE_NAME "${RESINSIGHT_PACKAGE_NAME}_${CPACK_SYSTEM_NAME}")
|
|
endif()
|
|
|
|
# message("RESINSIGHT_PACKAGE_NAME : " ${RESINSIGHT_PACKAGE_NAME})
|
|
set(CPACK_PACKAGE_FILE_NAME ${RESINSIGHT_PACKAGE_NAME})
|
|
|
|
include(CPack)
|