#3754 Upgrade CAF CMake-system to support both Qt4 and Qt5

This commit is contained in:
Gaute Lindkvist
2018-11-27 08:40:24 +01:00
parent cc7269c717
commit ddb546d877
20 changed files with 460 additions and 172 deletions

View File

@@ -1,10 +1,15 @@
cmake_minimum_required (VERSION 2.8)
cmake_minimum_required (VERSION 2.8.12)
project (cafProjectDataModel)
# Qt
find_package ( Qt4 COMPONENTS QtCore QtGui )
include (${QT_USE_FILE})
find_package(Qt5Core CONFIG QUIET)
if (Qt5Core_FOUND)
find_package(Qt5 CONFIG REQUIRED Core Gui Widgets)
else()
find_package(Qt4 COMPONENTS QtCore QtGui REQUIRED)
include(${QT_USE_FILE})
endif(Qt5Core_FOUND)
set( PROJECT_FILES
cafFactory.h
@@ -21,9 +26,14 @@ add_library( ${PROJECT_NAME}
${PROJECT_FILES}
)
if (Qt5Core_FOUND)
set(QT_LIBRARIES Qt5::Core Qt5::Gui Qt5::Widgets)
endif()
target_link_libraries ( ${PROJECT_NAME}
cafPdmUiCore
cafPdmXml
${QT_LIBRARIES}
)
target_include_directories(${PROJECT_NAME}

View File

@@ -3,8 +3,13 @@ cmake_minimum_required (VERSION 2.8.12)
project (cafPdmCore)
# Qt
find_package ( Qt4 COMPONENTS QtCore )
include (${QT_USE_FILE})
find_package(Qt5Core CONFIG QUIET)
if (Qt5Core_FOUND)
find_package(Qt5 CONFIG REQUIRED Core)
else()
find_package(Qt4 COMPONENTS QtCore REQUIRED)
include(${QT_USE_FILE})
endif(Qt5Core_FOUND)
set( PROJECT_FILES
@@ -60,6 +65,12 @@ target_include_directories(${PROJECT_NAME}
${CMAKE_CURRENT_SOURCE_DIR}
)
if (Qt5Core_FOUND)
set(QT_LIBRARIES Qt5::Core Qt5::Gui Qt5::Widgets)
endif()
target_link_libraries(${PROJECT_NAME} ${QT_LIBRARIES})
if (MSVC)
set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "/W4 /wd4100 /wd4127")
endif()

View File

@@ -1,7 +1,12 @@
cmake_minimum_required (VERSION 2.8.12)
find_package ( Qt4 COMPONENTS QtCore QtGui )
include (${QT_USE_FILE})
find_package(Qt5 CONFIG REQUIRED Core)
if (Qt5Core_FOUND)
find_package(Qt5 CONFIG REQUIRED Core Gui Widgets)
else()
find_package(Qt4 COMPONENTS QtCore QtGui QtMain REQUIRED)
include(${QT_USE_FILE})
endif(Qt5Core_FOUND)
project ( cafPdmCore_UnitTests )
@@ -34,7 +39,10 @@ add_executable (${PROJECT_NAME}
source_group("" FILES ${PROJECT_FILES})
message(STATUS ${PROJECT_NAME}" - Qt includes : " ${QT_LIBRARIES})
if (Qt5Core_FOUND)
set(QT_LIBRARIES Qt5::Core Qt5::Gui Qt5::Widgets)
endif()
target_link_libraries ( ${PROJECT_NAME}
cafPdmCore
@@ -42,16 +50,25 @@ target_link_libraries ( ${PROJECT_NAME}
${THREAD_LIBRARY}
)
# Copy Qt Dlls
if (MSVC)
set (QTLIBLIST QtCore )
foreach (qtlib ${QTLIBLIST})
# 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)
set (QTLIBLIST QtCore QtGui )
foreach (qtlib ${QTLIBLIST})
# 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)

View File

@@ -1,23 +1,33 @@
cmake_minimum_required (VERSION 2.8)
cmake_minimum_required (VERSION 2.8.12)
project (cafPdmUiCore)
# Qt
find_package ( Qt4 COMPONENTS QtCore QtGui )
include (${QT_USE_FILE})
find_package(Qt5Core CONFIG QUIET)
if (Qt5Core_FOUND)
find_package(Qt5 CONFIG REQUIRED Core Gui Widgets)
else()
find_package(Qt4 COMPONENTS QtCore QtGui REQUIRED)
include(${QT_USE_FILE})
endif(Qt5Core_FOUND)
include_directories (
..
)
# These headers need to go through Qt's MOC compiler
set( QOBJECT_HEADERS
set (MOC_HEADER_FILES
cafPdmUiFieldEditorHandle.h
cafPdmUiSelection3dEditorVisualizer.h
)
if ( NOT CMAKE_AUTOMOC )
qt4_wrap_cpp( MOC_FILES_CPP ${QOBJECT_HEADERS} )
# Run MOC on the headers
add_definitions(-DCVF_USING_CMAKE)
if (Qt5Core_FOUND)
qt5_wrap_cpp(MOC_SOURCE_FILES ${MOC_HEADER_FILES} )
else()
qt4_wrap_cpp(MOC_SOURCE_FILES ${MOC_HEADER_FILES} )
endif()
set( PROJECT_FILES
@@ -67,11 +77,16 @@ set( PROJECT_FILES
add_library( ${PROJECT_NAME}
${PROJECT_FILES}
${MOC_FILES_CPP}
${MOC_SOURCE_FILES}
)
if (Qt5Core_FOUND)
set(QT_LIBRARIES Qt5::Core Qt5::Gui Qt5::Widgets)
endif()
target_link_libraries ( ${PROJECT_NAME}
cafPdmCore
${QT_LIBRARIES}
)
target_include_directories(${PROJECT_NAME}

View File

@@ -1,10 +1,15 @@
cmake_minimum_required (VERSION 2.8)
cmake_minimum_required (VERSION 2.8.12)
project (cafPdmXml)
# Qt
find_package ( Qt4 COMPONENTS QtCore )
include (${QT_USE_FILE})
find_package(Qt5Core CONFIG QUIET)
if (Qt5Core_FOUND)
find_package(Qt5 CONFIG REQUIRED Core Xml)
else()
find_package(Qt4 COMPONENTS QtCore QtXml REQUIRED)
include(${QT_USE_FILE})
endif(Qt5Core_FOUND)
include_directories (
..
@@ -44,8 +49,13 @@ add_library( ${PROJECT_NAME}
${PROJECT_FILES}
)
if (Qt5Core_FOUND)
set(QT_LIBRARIES Qt5::Core Qt5::Xml)
endif()
target_link_libraries ( ${PROJECT_NAME}
cafPdmCore
${QT_LIBRARIES}
)
target_include_directories(${PROJECT_NAME}

View File

@@ -1,7 +1,13 @@
cmake_minimum_required (VERSION 2.8.12)
find_package ( Qt4 COMPONENTS QtCore )
include (${QT_USE_FILE})
find_package(Qt5 CONFIG COMPONENTS Core)
if (Qt5Core_FOUND)
find_package(Qt5 CONFIG REQUIRED Core Xml)
else()
find_package(Qt4 COMPONENTS QtCore QtXml REQUIRED)
include(${QT_USE_FILE})
endif(Qt5Core_FOUND)
project ( cafPdmXml_UnitTests )
@@ -18,7 +24,10 @@ add_executable (${PROJECT_NAME}
cafPdmAdvancedTemplateTest.cpp
cafPdmXmlNumberTest.cpp
)
message(STATUS ${PROJECT_NAME}" - Qt includes : " ${QT_LIBRARIES})
if (Qt5Core_FOUND)
set(QT_LIBRARIES Qt5::Core Qt5::Xml)
endif()
target_link_libraries ( ${PROJECT_NAME}
cafPdmXml
@@ -29,14 +38,24 @@ target_link_libraries ( ${PROJECT_NAME}
source_group("" FILES ${PROJECT_FILES})
# Copy Qt Dlls
if (MSVC)
set (QTLIBLIST QtCore )
foreach (qtlib ${QTLIBLIST})
# 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)
set (QTLIBLIST QtCore)
foreach (qtlib ${QTLIBLIST})
# 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)

View File

@@ -1,7 +1,12 @@
cmake_minimum_required (VERSION 2.8.12)
find_package ( Qt4 COMPONENTS QtCore QtGui )
include (${QT_USE_FILE})
find_package(Qt5 CONFIG COMPONENTS Core)
if (Qt5Core_FOUND)
find_package(Qt5 CONFIG REQUIRED Core Xml)
else()
find_package(Qt4 COMPONENTS QtCore QtXml REQUIRED)
include(${QT_USE_FILE})
endif(Qt5Core_FOUND)
project ( cafProjectDataModel_UnitTests )
@@ -22,7 +27,10 @@ add_executable (${PROJECT_NAME}
${PROJECT_FILES}
gtest/gtest-all.cpp
)
message(${PROJECT_NAME}" - Qt includes : " ${QT_LIBRARIES})
if (Qt5Core_FOUND)
set(QT_LIBRARIES Qt5::Core Qt5::Xml)
endif()
target_link_libraries ( ${PROJECT_NAME}
cafProjectDataModel
@@ -33,14 +41,24 @@ target_link_libraries ( ${PROJECT_NAME}
source_group("" FILES ${PROJECT_FILES})
# Copy Qt Dlls
if (MSVC)
set (QTLIBLIST QtCore QtGui )
foreach (qtlib ${QTLIBLIST})
# 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)
set (QTLIBLIST QtCore QtGui)
foreach (qtlib ${QTLIBLIST})
# 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)