mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#3752 Upgrade ResInsight CMake-system to support both Qt5 and Qt5
This commit is contained in:
parent
5c66b901c3
commit
6cee9eb9e6
4
.gitignore
vendored
4
.gitignore
vendored
@ -69,3 +69,7 @@ Ankh.NoLoad
|
||||
/Resinsight_Host.creator
|
||||
/Resinsight_Host.config
|
||||
*.RESINSIGHT_IDX
|
||||
/Fwk/VizFwk/.vs/VizFramework/v15/Solution.VC.db-wal
|
||||
/Fwk/VizFwk/.vs/VizFramework/v15/Solution.VC.db-shm
|
||||
/Fwk/VizFwk/.vs/VizFramework/v15/Solution.VC.db
|
||||
/Fwk/VizFwk/.vs/VizFramework/v15/Browse.VC.db
|
||||
|
@ -2,6 +2,19 @@ cmake_minimum_required (VERSION 2.8.12)
|
||||
|
||||
project (ApplicationCode)
|
||||
|
||||
# Open GL
|
||||
find_package( OpenGL )
|
||||
|
||||
find_package(Qt5Core CONFIG QUIET)
|
||||
if (Qt5Core_FOUND)
|
||||
find_package(Qt5 CONFIG REQUIRED Core Gui OpenGL Network Script Widgets)
|
||||
set(QT_LIBRARIES Qt5::Core Qt5::Gui Qt5::Network Qt5::OpenGL Qt5::Script Qt5::Widgets)
|
||||
else()
|
||||
set (QT_COMPONENTS_REQUIRED QtCore QtGui QtMain QtOpenGl QtNetwork QtScript)
|
||||
find_package(Qt4 COMPONENTS ${QT_COMPONENTS_REQUIRED} REQUIRED)
|
||||
include(${QT_USE_FILE})
|
||||
endif(Qt5Core_FOUND)
|
||||
|
||||
# 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_SOURCE_DIR}/ApplicationCode/Adm/RiaVersionInfo.h.cmake
|
||||
@ -220,9 +233,14 @@ set ( QT_MOC_HEADERS
|
||||
SocketInterface/RiaSocketServer.h
|
||||
)
|
||||
|
||||
qt4_wrap_cpp( MOC_FILES_CPP ${QT_MOC_HEADERS} )
|
||||
if (Qt5Core_FOUND)
|
||||
qt5_wrap_cpp(MOC_SOURCE_FILES ${QT_MOC_HEADERS} )
|
||||
qt5_wrap_ui( FORM_FILES_CPP ${QT_UI_FILES} )
|
||||
else()
|
||||
qt4_wrap_cpp(MOC_SOURCE_FILES ${QT_MOC_HEADERS} )
|
||||
qt4_wrap_ui( FORM_FILES_CPP ${QT_UI_FILES} )
|
||||
endif()
|
||||
|
||||
qt4_wrap_ui( FORM_FILES_CPP ${QT_UI_FILES} )
|
||||
|
||||
# NOTE! Resources in subfolders must append to QRC_FILES using the following statement
|
||||
# set( QRC_FILES
|
||||
@ -237,7 +255,17 @@ set( QRC_FILES
|
||||
)
|
||||
|
||||
# Runs RCC on specified files
|
||||
qt4_add_resources( QRC_FILES_CPP ${QRC_FILES} )
|
||||
if ( NOT CMAKE_AUTOMOC)
|
||||
if (Qt5Core_FOUND)
|
||||
qt5_add_resources( QRC_FILES_CPP
|
||||
${QRC_FILES}
|
||||
)
|
||||
else()
|
||||
qt4_add_resources( QRC_FILES_CPP
|
||||
${QRC_FILES}
|
||||
)
|
||||
endif(Qt5Core_FOUND)
|
||||
endif(NOT CMAKE_AUTOMOC)
|
||||
|
||||
# Adding resource (RC) files for Windows
|
||||
if ( MSVC )
|
||||
@ -273,7 +301,7 @@ endif()
|
||||
set( EXE_FILES
|
||||
${EXE_FILES}
|
||||
${CPP_SOURCES}
|
||||
${MOC_FILES_CPP}
|
||||
${MOC_SOURCE_FILES}
|
||||
${FORM_FILES_CPP}
|
||||
${QRC_FILES_CPP}
|
||||
${WIN_RESOURCE}
|
||||
@ -401,11 +429,19 @@ endif()
|
||||
if (MSVC)
|
||||
|
||||
# Qt DLLs
|
||||
set (QTLIBLIST QtCore QtCored QtGui QtGuid QtOpenGl QtOpenGld QtNetwork QtNetworkd QtScript QtScriptd QtScriptTools QtScriptToolsd)
|
||||
foreach (qtlib ${QTLIBLIST})
|
||||
list(APPEND RI_DLL_FILENAMES ${QT_BINARY_DIR}/${qtlib}4.dll)
|
||||
endforeach( qtlib )
|
||||
|
||||
if (Qt5Core_FOUND)
|
||||
message(STATUS "Creating post build step for copying Qt DLLs")
|
||||
foreach (qtlib ${QT_LIBRARIES})
|
||||
add_custom_command(TARGET ResInsight POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:${qtlib}> $<TARGET_FILE_DIR:ResInsight>
|
||||
)
|
||||
endforeach(qtlib)
|
||||
else()
|
||||
set (QTLIBLIST QtCore4 QtCored4 QtGui4 QtGuid4 QtOpenGl4 QtOpenGld4 QtNetwork4 QtNetworkd4 QtScript4 QtScriptd4 QtScriptTools4 QtScriptToolsd4)
|
||||
foreach (qtlib ${QTLIBLIST})
|
||||
list(APPEND RI_DLL_FILENAMES ${QT_BINARY_DIR}/${qtlib}.dll)
|
||||
endforeach( qtlib )
|
||||
endif()
|
||||
# Odb Dlls
|
||||
if (RESINSIGHT_USE_ODB_API)
|
||||
# Find all the dlls
|
||||
|
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required (VERSION 2.8)
|
||||
cmake_minimum_required (VERSION 2.8.12)
|
||||
|
||||
project (RifOdbReader)
|
||||
|
||||
|
@ -2,8 +2,16 @@ cmake_minimum_required (VERSION 2.8.12)
|
||||
|
||||
project (WellPathImportSsihub)
|
||||
|
||||
find_package(Qt5Core CONFIG QUIET)
|
||||
if (Qt5Core_FOUND)
|
||||
find_package(Qt5 CONFIG REQUIRED Core Network)
|
||||
else()
|
||||
find_package(Qt4 COMPONENTS QtCore QtNetwork REQUIRED)
|
||||
include(${QT_USE_FILE})
|
||||
endif(Qt5Core_FOUND)
|
||||
|
||||
# These headers need to go through Qt's MOC compiler
|
||||
set( QOBJECT_HEADERS
|
||||
set( QT_MOC_HEADERS
|
||||
RiuWellImportWizard.h
|
||||
)
|
||||
|
||||
@ -12,8 +20,13 @@ set( QT_UI_FILES
|
||||
)
|
||||
|
||||
if ( NOT CMAKE_AUTOMOC )
|
||||
qt4_wrap_cpp( MOC_FILES_CPP ${QOBJECT_HEADERS} )
|
||||
qt4_wrap_ui( FORM_FILES_CPP ${QT_UI_FILES} )
|
||||
if (Qt5Core_FOUND)
|
||||
qt5_wrap_cpp(MOC_SOURCE_FILES ${QT_MOC_HEADERS} )
|
||||
qt5_wrap_ui( FORM_FILES_CPP ${QT_UI_FILES} )
|
||||
else()
|
||||
qt4_wrap_cpp(MOC_SOURCE_FILES ${QT_MOC_HEADERS} )
|
||||
qt4_wrap_ui( FORM_FILES_CPP ${QT_UI_FILES} )
|
||||
endif()
|
||||
endif()
|
||||
|
||||
include_directories(
|
||||
@ -37,13 +50,17 @@ add_library( ${PROJECT_NAME}
|
||||
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../FileInterface/RifJsonEncodeDecode.cpp
|
||||
|
||||
${MOC_FILES_CPP}
|
||||
${MOC_SOURCE_FILES}
|
||||
${FORM_FILES_CPP}
|
||||
${HEADER_FILES}
|
||||
)
|
||||
|
||||
if (Qt5Core_FOUND)
|
||||
set(QT_LIBRARIES Qt5::Core Qt5::Network)
|
||||
endif()
|
||||
|
||||
target_link_libraries ( ${PROJECT_NAME}
|
||||
cafUserInterface cafPdmCvf CommonCode
|
||||
cafUserInterface cafPdmCvf CommonCode ${QT_LIBRARIES}
|
||||
)
|
||||
|
||||
source_group("" FILES ${PROJECT_FILES})
|
||||
|
@ -3,9 +3,19 @@ cmake_minimum_required (VERSION 2.8)
|
||||
project ( WellPathImportSsihubTestApp )
|
||||
|
||||
|
||||
set (QT_COMPONENTS_REQUIRED QtCore QtGui QtMain QtOpenGl QtNetwork QtScript QtScriptTools)
|
||||
find_package (Qt4 COMPONENTS ${QT_COMPONENTS_REQUIRED} REQUIRED)
|
||||
include (${QT_USE_FILE})
|
||||
find_package(Qt5 CONFIG COMPONENTS Core)
|
||||
if (Qt5Core_FOUND)
|
||||
message(STATUS "Found Qt5")
|
||||
find_package(Qt5 CONFIG REQUIRED Core Gui OpenGl Network Script ScriptTools Widgets)
|
||||
else()
|
||||
set (QT_COMPONENTS_REQUIRED QtCore QtGui QtMain QtOpenGl QtNetwork QtScript QtScriptTools)
|
||||
find_package(Qt4 COMPONENTS ${QT_COMPONENTS_REQUIRED} REQUIRED)
|
||||
include(${QT_USE_FILE})
|
||||
if (QT4_FOUND)
|
||||
message(STATUS "Found Qt4")
|
||||
endif(QT4_FOUND)
|
||||
endif(Qt5Core_FOUND)
|
||||
|
||||
|
||||
# Open GL
|
||||
find_package( OpenGL )
|
||||
@ -29,18 +39,26 @@ include_directories(
|
||||
set ( QT_MOC_HEADERS
|
||||
)
|
||||
|
||||
qt4_wrap_cpp( MOC_FILES_CPP
|
||||
${QT_MOC_HEADERS}
|
||||
)
|
||||
if (Qt5Core_FOUND)
|
||||
qt5_wrap_cpp(MOC_SOURCE_FILES ${MOC_HEADER_FILES} )
|
||||
else()
|
||||
qt4_wrap_cpp(MOC_SOURCE_FILES ${MOC_HEADER_FILES} )
|
||||
endif()
|
||||
|
||||
# Resource file
|
||||
set( QRC_FILES
|
||||
)
|
||||
|
||||
# Runs RCC on specified files
|
||||
qt4_add_resources( QRC_FILES_CPP
|
||||
${QRC_FILES}
|
||||
)
|
||||
if (Qt5Core_FOUND)
|
||||
qt5_add_resources( QRC_FILES_CPP
|
||||
${QRC_FILES}
|
||||
)
|
||||
else()
|
||||
qt4_add_resources( QRC_FILES_CPP
|
||||
${QRC_FILES}
|
||||
)
|
||||
endif()
|
||||
|
||||
|
||||
# add the executable
|
||||
@ -48,10 +66,14 @@ add_executable ( ${PROJECT_NAME}
|
||||
main.cpp
|
||||
TestTools.cpp
|
||||
TestTools.h
|
||||
${MOC_FILES_CPP}
|
||||
${MOC_SOURCE_FILES}
|
||||
${QRC_FILES_CPP}
|
||||
)
|
||||
|
||||
if (Qt5Core_FOUND)
|
||||
set(QT_LIBRARIES Qt5::Core Qt5::Gui Qt5::OpenGl Qt5::Network Qt5::Script Qt5::ScriptTools Qt5::Widgets)
|
||||
endif()
|
||||
|
||||
target_link_libraries ( ${PROJECT_NAME}
|
||||
|
||||
cafProjectDataModel
|
||||
@ -62,13 +84,23 @@ target_link_libraries ( ${PROJECT_NAME}
|
||||
)
|
||||
|
||||
# Copy Qt Dlls
|
||||
if (MSVC)
|
||||
foreach (qtlib ${QT_COMPONENTS_REQUIRED})
|
||||
|
||||
# Debug
|
||||
execute_process(COMMAND cmake -E copy_if_different ${QT_BINARY_DIR}/${qtlib}d4.dll ${CMAKE_CURRENT_BINARY_DIR}/Debug/${qtlib}d4.dll)
|
||||
|
||||
# Release
|
||||
execute_process(COMMAND cmake -E copy_if_different ${QT_BINARY_DIR}/${qtlib}4.dll ${CMAKE_CURRENT_BINARY_DIR}/Release/${qtlib}4.dll)
|
||||
endforeach( qtlib )
|
||||
endif(MSVC)
|
||||
if (Qt5Core_FOUND)
|
||||
foreach (qtlib ${QT_LIBRARIES})
|
||||
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:${qtlib}> $<TARGET_FILE_DIR:${PROJECT_NAME}>
|
||||
)
|
||||
endforeach(qtlib)
|
||||
# Copy Qt Dlls
|
||||
else()
|
||||
# Copy Qt Dlls
|
||||
if (MSVC)
|
||||
foreach (qtlib ${QT_COMPONENTS_REQUIRED})
|
||||
|
||||
# Debug
|
||||
execute_process(COMMAND cmake -E copy_if_different ${QT_BINARY_DIR}/${qtlib}d4.dll ${CMAKE_BINARY_DIR}/Debug/${qtlib}d4.dll)
|
||||
|
||||
# Release
|
||||
execute_process(COMMAND cmake -E copy_if_different ${QT_BINARY_DIR}/${qtlib}4.dll ${CMAKE_BINARY_DIR}/Release/${qtlib}4.dll)
|
||||
endforeach( qtlib )
|
||||
endif(MSVC)
|
||||
endif(Qt5Core_FOUND)
|
||||
|
@ -5,6 +5,7 @@ project (ResInsight)
|
||||
|
||||
set (VIZ_MODULES_FOLDER_NAME Fwk/VizFwk)
|
||||
|
||||
cmake_policy(SET CMP0020 NEW)
|
||||
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||
|
||||
SET(BUILD_SHARED_LIBS OFF CACHE BOOL "ERT: Build shared libraries")
|
||||
@ -231,17 +232,19 @@ list(APPEND THIRD_PARTY_LIBRARIES
|
||||
################################################################################
|
||||
# Qt
|
||||
################################################################################
|
||||
set (QT_COMPONENTS_REQUIRED QtCore QtGui QtMain QtOpenGl QtNetwork QtScript QtScriptTools)
|
||||
find_package (Qt4 COMPONENTS ${QT_COMPONENTS_REQUIRED})
|
||||
if ( NOT QT4_FOUND )
|
||||
message(FATAL_ERROR "Package Qt4 is required, but not found. Please specify qmake for variable QT_QMAKE_EXECUTABLE")
|
||||
endif ( NOT QT4_FOUND )
|
||||
find_package(Qt5Core CONFIG QUIET)
|
||||
|
||||
if (QT_VERSION_MINOR LESS 6)
|
||||
message(FATAL_ERROR "Qt 4.6 is required, please specify qmake for variable QT_QMAKE_EXECUTABLE")
|
||||
endif()
|
||||
|
||||
include (${QT_USE_FILE})
|
||||
if (Qt5Core_FOUND)
|
||||
message(STATUS "Found Qt5")
|
||||
find_package (Qt5 CONFIG REQUIRED Core Widgets OpenGL Network Script ScriptTools)
|
||||
else()
|
||||
message(STATUS "No Qt5 found, trying Qt4")
|
||||
find_package(Qt4 COMPONENTS QtCore QtGui QtMain REQUIRED)
|
||||
if (QT_VERSION_MINOR LESS 6)
|
||||
message(FATAL_ERROR "Qt 4.6 is required, please specify qmake for variable QT_QMAKE_EXECUTABLE")
|
||||
endif()
|
||||
include(${QT_USE_FILE})
|
||||
endif(Qt5Core_FOUND)
|
||||
|
||||
# Open GL
|
||||
find_package( OpenGL )
|
||||
|
Loading…
Reference in New Issue
Block a user