Merge branch 'VS2017_Apps-64' into 'master'
Enabled 64-bit app builds See merge request OpenMesh/OpenMesh!166
This commit is contained in:
@@ -43,56 +43,31 @@ cppcheck:
|
|||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- cppcheck.log
|
- cppcheck.log
|
||||||
|
|
||||||
|
VS2017-64-bit-shared-apps:
|
||||||
.VS2015-64-bit-shared-apps:
|
|
||||||
variables:
|
variables:
|
||||||
BUILD_PLATFORM: "VS2015"
|
BUILD_PLATFORM: "VS2017"
|
||||||
ARCHITECTURE: "x64"
|
ARCHITECTURE: "x64"
|
||||||
SHARED: "TRUE"
|
SHARED: "TRUE"
|
||||||
APPS: "ON"
|
APPS: "ON"
|
||||||
script: "CI\\Windows.bat"
|
script: "CI\\Windows.bat"
|
||||||
tags:
|
tags:
|
||||||
- VS2015
|
- VS2017
|
||||||
|
- Qt5101
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- build-release/*.exe
|
- build-release/*.exe
|
||||||
|
|
||||||
.VS2015-32-bit-shared-apps:
|
VS2017-64-bit-static-apps:
|
||||||
variables:
|
variables:
|
||||||
BUILD_PLATFORM: "VS2015"
|
BUILD_PLATFORM: "VS2017"
|
||||||
ARCHITECTURE: "x32"
|
|
||||||
SHARED: "TRUE"
|
|
||||||
APPS: "ON"
|
|
||||||
script: "CI\\Windows.bat"
|
|
||||||
tags:
|
|
||||||
- VS2015
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- build-release/*.exe
|
|
||||||
|
|
||||||
.VS2015-64-bit-static-apps:
|
|
||||||
variables:
|
|
||||||
BUILD_PLATFORM: "VS2015"
|
|
||||||
ARCHITECTURE: "x64"
|
ARCHITECTURE: "x64"
|
||||||
SHARED: "FALSE"
|
SHARED: "FALSE"
|
||||||
APPS: "ON"
|
APPS: "ON"
|
||||||
script: "CI\\Windows.bat"
|
script: "CI\\Windows.bat"
|
||||||
tags:
|
tags:
|
||||||
- VS2015
|
- VS2017
|
||||||
artifacts:
|
- Qt5101
|
||||||
paths:
|
|
||||||
- build-release/*.exe
|
|
||||||
|
|
||||||
.VS2015-32-bit-static-apps:
|
|
||||||
variables:
|
|
||||||
BUILD_PLATFORM: "VS2015"
|
|
||||||
ARCHITECTURE: "x32"
|
|
||||||
SHARED: "FALSE"
|
|
||||||
APPS: "ON"
|
|
||||||
script: "CI\\Windows.bat"
|
|
||||||
tags:
|
|
||||||
- VS2015
|
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- build-release/*.exe
|
- build-release/*.exe
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ IF "%BUILD_PLATFORM%" == "VS2012" (
|
|||||||
set GTESTVERSION=gtest-1.6.0
|
set GTESTVERSION=gtest-1.6.0
|
||||||
set GENERATOR=Visual Studio 11%ARCH_VS%
|
set GENERATOR=Visual Studio 11%ARCH_VS%
|
||||||
set VS_PATH="C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.com"
|
set VS_PATH="C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.com"
|
||||||
set QT_VERSION=
|
|
||||||
IF "%ARCHITECTURE%" == "x64" (
|
IF "%ARCHITECTURE%" == "x64" (
|
||||||
set QT_INSTALL_PATH=E:\Qt\4.8.5-vs2012-%STRING_ARCH%\
|
set QT_INSTALL_PATH=E:\Qt\4.8.5-vs2012-%STRING_ARCH%\
|
||||||
set QT_BASE_CONFIG=-DQT_QMAKE_EXECUTABLE=E:\Qt\4.8.5-vs2012-%STRING_ARCH%\bin\qmake.exe
|
set QT_BASE_CONFIG=-DQT_QMAKE_EXECUTABLE=E:\Qt\4.8.5-vs2012-%STRING_ARCH%\bin\qmake.exe
|
||||||
@@ -38,7 +37,6 @@ IF "%BUILD_PLATFORM%" == "VS2013" (
|
|||||||
set GTESTVERSION=gtest-1.6.0
|
set GTESTVERSION=gtest-1.6.0
|
||||||
set GENERATOR=Visual Studio 12%ARCH_VS%
|
set GENERATOR=Visual Studio 12%ARCH_VS%
|
||||||
set VS_PATH="C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.com"
|
set VS_PATH="C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.com"
|
||||||
set QT_VERSION=
|
|
||||||
IF "%ARCHITECTURE%" == "x64" (
|
IF "%ARCHITECTURE%" == "x64" (
|
||||||
set QT_INSTALL_PATH=E:\Qt\Qt5.3.1-vs2013-%STRING_ARCH%\5.3\msvc2013_64_opengl
|
set QT_INSTALL_PATH=E:\Qt\Qt5.3.1-vs2013-%STRING_ARCH%\5.3\msvc2013_64_opengl
|
||||||
set QT_BASE_CONFIG=-DQT5_INSTALL_PATH=E:\Qt\Qt5.3.1-vs2013-%STRING_ARCH%\5.3\msvc2013_64_opengl
|
set QT_BASE_CONFIG=-DQT5_INSTALL_PATH=E:\Qt\Qt5.3.1-vs2013-%STRING_ARCH%\5.3\msvc2013_64_opengl
|
||||||
@@ -56,7 +54,6 @@ IF "%BUILD_PLATFORM%" == "VS2015" (
|
|||||||
set GENERATOR=Visual Studio 14%ARCH_VS%
|
set GENERATOR=Visual Studio 14%ARCH_VS%
|
||||||
set VS_PATH="C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.com"
|
set VS_PATH="C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.com"
|
||||||
|
|
||||||
set QT_VERSION=
|
|
||||||
IF "%ARCHITECTURE%" == "x64" (
|
IF "%ARCHITECTURE%" == "x64" (
|
||||||
set QT_INSTALL_PATH=E:\Qt\Qt5.6.0-vs2015-%STRING_ARCH%\5.6\msvc2015_64
|
set QT_INSTALL_PATH=E:\Qt\Qt5.6.0-vs2015-%STRING_ARCH%\5.6\msvc2015_64
|
||||||
set QT_BASE_CONFIG=-DQT5_INSTALL_PATH=E:\Qt\Qt5.6.0-vs2015-%STRING_ARCH%\5.6\msvc2015_64
|
set QT_BASE_CONFIG=-DQT5_INSTALL_PATH=E:\Qt\Qt5.6.0-vs2015-%STRING_ARCH%\5.6\msvc2015_64
|
||||||
@@ -75,7 +72,6 @@ IF "%BUILD_PLATFORM%" == "VS2017" (
|
|||||||
set GENERATOR=Visual Studio 15%ARCH_VS%
|
set GENERATOR=Visual Studio 15%ARCH_VS%
|
||||||
set VS_PATH="C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\devenv.com"
|
set VS_PATH="C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\devenv.com"
|
||||||
|
|
||||||
set QT_VERSION=
|
|
||||||
IF "%ARCHITECTURE%" == "x64" (
|
IF "%ARCHITECTURE%" == "x64" (
|
||||||
set QT_INSTALL_PATH=E:\Qt\Qt5.10.1\5.10.1\msvc2017_64
|
set QT_INSTALL_PATH=E:\Qt\Qt5.10.1\5.10.1\msvc2017_64
|
||||||
set QT_BASE_CONFIG=-DQT5_INSTALL_PATH=E:\Qt\Qt5.10.1\5.10.1\msvc2017_64
|
set QT_BASE_CONFIG=-DQT5_INSTALL_PATH=E:\Qt\Qt5.10.1\5.10.1\msvc2017_64
|
||||||
@@ -93,14 +89,7 @@ IF "%APPS%" == "ON" (
|
|||||||
|
|
||||||
REM Copy the platform plugins subdirectory for the qt plugins required to run the gui apps
|
REM Copy the platform plugins subdirectory for the qt plugins required to run the gui apps
|
||||||
xcopy /Y %QT_INSTALL_PATH%\plugins\platforms Build\plugins\platforms
|
xcopy /Y %QT_INSTALL_PATH%\plugins\platforms Build\plugins\platforms
|
||||||
|
set CMAKE_CONFIGURATION=%QT_BASE_CONFIG%
|
||||||
IF "%BUILD_PLATFORM%" == "VS2015" (
|
|
||||||
set CMAKE_CONFIGURATION=%QT_BASE_CONFIG% -DGLUT_INCLUDE_DIR="%LIBPATH%\%ARCHITECTURE%\freeglut-3.0.0\include" -DGLUT_glut_LIBRARY="%LIBPATH%\%ARCHITECTURE%\freeglut-3.0.0\lib\freeglut.lib"
|
|
||||||
|
|
||||||
|
|
||||||
) ELSE (
|
|
||||||
set CMAKE_CONFIGURATION=%QT_BASE_CONFIG% -DGLUT_INCLUDE_DIR="%LIBPATH%\%ARCHITECTURE%\freeglut-2.8.1\include" -DGLUT_glut_LIBRARY="%LIBPATH%\%ARCHITECTURE%\freeglut-2.8.1\lib\freeglut.lib"
|
|
||||||
)
|
|
||||||
) ELSE (
|
) ELSE (
|
||||||
set STRING_APPS=-no-apps
|
set STRING_APPS=-no-apps
|
||||||
set CMAKE_CONFIGURATION=
|
set CMAKE_CONFIGURATION=
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ if(${PROJECT_NAME} MATCHES "OpenMesh")
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
include (ACGOutput)
|
include (ACGOutput)
|
||||||
|
include(ACGQt)
|
||||||
|
|
||||||
# ========================================================================
|
# ========================================================================
|
||||||
# Definitions
|
# Definitions
|
||||||
|
|||||||
@@ -3,10 +3,10 @@ if (EXISTS ${CMAKE_SOURCE_DIR}/${CMAKE_PROJECT_NAME}.cmake)
|
|||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
# prevent build in source directory
|
# prevent build in source directory
|
||||||
if ("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_SOURCE_DIR}")
|
if ("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_SOURCE_DIR}")
|
||||||
message (SEND_ERROR "Building in the source directory is not supported.")
|
message (SEND_ERROR "Building in the source directory is not supported.")
|
||||||
message (FATAL_ERROR "Please remove the created \"CMakeCache.txt\" file, the \"CMakeFiles\" directory and create a build directory and call \"${CMAKE_COMMAND} <path to the sources>\".")
|
message (FATAL_ERROR "Please remove the created \"CMakeCache.txt\" file, the \"CMakeFiles\" directory and create a build directory and call \"${CMAKE_COMMAND} <path to the sources>\".")
|
||||||
endif ("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_SOURCE_DIR}")
|
endif ("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_SOURCE_DIR}")
|
||||||
|
|
||||||
# allow only Debug and Release builds
|
# allow only Debug and Release builds
|
||||||
set (CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "")
|
set (CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "")
|
||||||
@@ -132,7 +132,7 @@ macro (acg_set_target_props target)
|
|||||||
#BUILD_WITH_INSTALL_RPATH 1
|
#BUILD_WITH_INSTALL_RPATH 1
|
||||||
SKIP_BUILD_RPATH 0
|
SKIP_BUILD_RPATH 0
|
||||||
)
|
)
|
||||||
endif(NOT (CMAKE_MAJOR_VERSION LESS 3))
|
endif(NOT (CMAKE_MAJOR_VERSION LESS 3) )
|
||||||
elseif (NOT APPLE)
|
elseif (NOT APPLE)
|
||||||
|
|
||||||
set_target_properties (
|
set_target_properties (
|
||||||
@@ -152,155 +152,6 @@ include (ACGCompiler)
|
|||||||
# define INCLUDE_TEMPLATES for everything we build
|
# define INCLUDE_TEMPLATES for everything we build
|
||||||
add_definitions (-DINCLUDE_TEMPLATES)
|
add_definitions (-DINCLUDE_TEMPLATES)
|
||||||
|
|
||||||
#unset cached qt variables which are set by all qt versions. version is the major number of the qt version (e.g. 4 or 5, not 4.8)
|
|
||||||
macro (acg_unset_qt_shared_variables version)
|
|
||||||
if (ACG_INTERNAL_QT_LAST_VERSION)
|
|
||||||
if (NOT ${ACG_INTERNAL_QT_LAST_VERSION} EQUAL ${version})
|
|
||||||
unset(QT_BINARY_DIR)
|
|
||||||
unset(QT_PLUGINS_DIR)
|
|
||||||
unset(ACG_INTERNAL_QT_LAST_VERSION)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
set (ACG_INTERNAL_QT_LAST_VERSION "${version}" CACHE INTERNAL "Qt Version, which was used on the last time")
|
|
||||||
endmacro()
|
|
||||||
|
|
||||||
# look for selected qt dependencies
|
|
||||||
macro (acg_qt4)
|
|
||||||
if (NOT QT4_FOUND)
|
|
||||||
acg_unset_qt_shared_variables(4)
|
|
||||||
find_package (Qt4 COMPONENTS QtCore QtGui ${ARGN})
|
|
||||||
|
|
||||||
set (QT_USE_QTOPENGL 1)
|
|
||||||
set (QT_USE_QTNETWORK 1)
|
|
||||||
set (QT_USE_QTSCRIPT 1)
|
|
||||||
set (QT_USE_QTSQL 1)
|
|
||||||
set (QT_USE_QTXML 1)
|
|
||||||
set (QT_USE_QTXMLPATTERNS 1)
|
|
||||||
set (QT_USE_QTHELP 1)
|
|
||||||
set (QT_USE_QTWEBKIT 1)
|
|
||||||
set (QT_USE_QTUITOOLS 1)
|
|
||||||
|
|
||||||
include (${QT_USE_FILE})
|
|
||||||
endif ()
|
|
||||||
endmacro ()
|
|
||||||
|
|
||||||
macro (acg_qt5)
|
|
||||||
|
|
||||||
if(POLICY CMP0020)
|
|
||||||
# Automatically link Qt executables to qtmain target on Windows
|
|
||||||
cmake_policy(SET CMP0020 NEW)
|
|
||||||
endif(POLICY CMP0020)
|
|
||||||
#if (NOT QT5_FOUND)
|
|
||||||
|
|
||||||
#set (QT_MIN_VERSION ${ARGN})
|
|
||||||
|
|
||||||
#try to find qt5 automatically
|
|
||||||
#for custom installation of qt5, dont use any of these variables
|
|
||||||
set (QT5_INSTALL_PATH "" CACHE PATH "Path to Qt5 directory which contains lib and include folder")
|
|
||||||
if (EXISTS "${QT5_INSTALL_PATH}")
|
|
||||||
set (CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH};${QT5_INSTALL_PATH}")
|
|
||||||
set (QT5_INSTALL_PATH_EXISTS TRUE)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
find_package (Qt5Core QUIET)
|
|
||||||
|
|
||||||
#find WINDOWS_SDK to avoid qt error. This must be done BEFORE Qt5Widgets is searched
|
|
||||||
if (Qt5Core_FOUND AND WIN32)
|
|
||||||
string(REGEX REPLACE "^([0-9]+)\\.[0-9]+\\.[0-9]+.*" "\\1" QT_VERSION_MAJOR "${Qt5Core_VERSION_STRING}")
|
|
||||||
string(REGEX REPLACE "^[0-9]+\\.([0-9])+\\.[0-9]+.*" "\\1" QT_VERSION_MINOR "${Qt5Core_VERSION_STRING}")
|
|
||||||
string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" QT_VERSION_PATCH "${Qt5Core_VERSION_STRING}")
|
|
||||||
|
|
||||||
if ( (QT_VERSION_MAJOR EQUAL 5) AND (QT_VERSION_MINOR LESS 3 OR ( QT_VERSION_MINOR EQUAL 3 AND QT_VERSION_PATCH EQUAL 0 )) ) # for all Qt version > 5.0.0 and < 5.3.1
|
|
||||||
#glu32.lib is needed by qt5 opengl version. it cannot find it by itself so we help qt
|
|
||||||
#this block has to be executed, before Qt5Gui is searched, otherwise we will end up with the (not so useful) QT5 error message
|
|
||||||
set(WINDOWS_SDK_LIBS "COULD_NOT_FOUND" CACHE PATH "Path to the latest windows sdk libs which includes glu32.lib. Used by Qt5.")
|
|
||||||
if (EXISTS "${WINDOWS_SDK_LIBS}\\glu32.lib")
|
|
||||||
set (CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH};${WINDOWS_SDK_LIBS}")
|
|
||||||
elseif(QT5_INSTALL_PATH_EXISTS) #trying to install qt5. notify about missing sdk before the qt message comes
|
|
||||||
message(FATAL_ERROR "Could not find glu32.lib. This is necessary for QT5 OpenGL version for windows, spleace specify glu32.lib in WINDOWS_SDK_LIB or install Qt version >= 5.3.1")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endif(Qt5Core_FOUND AND WIN32)
|
|
||||||
|
|
||||||
find_package (Qt5Gui QUIET)
|
|
||||||
find_package (Qt5OpenGL QUIET)
|
|
||||||
|
|
||||||
|
|
||||||
if (Qt5Core_FOUND AND Qt5Gui_FOUND AND Qt5OpenGL_FOUND)
|
|
||||||
set (QT5_FOUND TRUE)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (QT5_FOUND)
|
|
||||||
acg_unset_qt_shared_variables(5)
|
|
||||||
|
|
||||||
#set plugin dir
|
|
||||||
list(GET Qt5Gui_PLUGINS 0 _plugin)
|
|
||||||
if (_plugin)
|
|
||||||
get_target_property(_plugin_full ${_plugin} LOCATION)
|
|
||||||
get_filename_component(_plugin_dir ${_plugin_full} PATH)
|
|
||||||
set (QT_PLUGINS_DIR "${_plugin_dir}/../" CACHE PATH "Path to the qt plugin directory")
|
|
||||||
elseif(QT5_INSTALL_PATH_EXISTS)
|
|
||||||
set (QT_PLUGINS_DIR "${QT5_INSTALL_PATH}/plugins/" CACHE PATH "Path to the qt plugin directory")
|
|
||||||
elseif()
|
|
||||||
set (QT_PLUGINS_DIR "QT_PLUGIN_DIR_NOT_FOUND" CACHE PATH "Path to the qt plugin directory")
|
|
||||||
endif(_plugin)
|
|
||||||
|
|
||||||
#set binary dir for fixupbundle
|
|
||||||
if(QT5_INSTALL_PATH_EXISTS)
|
|
||||||
set(_QT_BINARY_DIR "${QT5_INSTALL_PATH}/bin")
|
|
||||||
else()
|
|
||||||
get_target_property(_QT_BINARY_DIR ${Qt5Widgets_UIC_EXECUTABLE} LOCATION)
|
|
||||||
get_filename_component(_QT_BINARY_DIR ${_QT_BINARY_DIR} PATH)
|
|
||||||
endif(QT5_INSTALL_PATH_EXISTS)
|
|
||||||
|
|
||||||
set (QT_BINARY_DIR "${_QT_BINARY_DIR}" CACHE PATH "Qt5 binary Directory")
|
|
||||||
mark_as_advanced(QT_BINARY_DIR)
|
|
||||||
|
|
||||||
set (CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
|
||||||
|
|
||||||
include_directories(${Qt5Core_INCLUDE_DIRS})
|
|
||||||
include_directories(${Qt5Gui_INCLUDE_DIRS})
|
|
||||||
include_directories(${Qt5OpenGL_INCLUDE_DIRS})
|
|
||||||
add_definitions(${Qt5Core_DEFINITIONS})
|
|
||||||
add_definitions(${Qt5Gui_DEFINITIONS})
|
|
||||||
add_definitions(${Qt5OpenGL_DEFINITIONS})
|
|
||||||
|
|
||||||
if ( NOT MSVC )
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set (QT_LIBRARIES ${Qt5Core_LIBRARIES} ${Qt5Widgets_LIBRARIES}
|
|
||||||
${Qt5Gui_LIBRARIES} ${Qt5OpenGL_LIBRARIES})
|
|
||||||
|
|
||||||
if (MSVC)
|
|
||||||
set (QT_LIBRARIES ${QT_LIBRARIES} ${Qt5Core_QTMAIN_LIBRARIES})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
#add_definitions(-DQT_NO_OPENGL)
|
|
||||||
|
|
||||||
#adding QT_NO_DEBUG to all release modes.
|
|
||||||
# Note: for multi generators like msvc you cannot set this definition depending of
|
|
||||||
# the current build type, because it may change in the future inside the ide and not via cmake
|
|
||||||
if (MSVC_IDE)
|
|
||||||
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /DQT_NO_DEBUG")
|
|
||||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /DQT_NO_DEBUG")
|
|
||||||
|
|
||||||
set(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_RELEASE} /DQT_NO_DEBUG")
|
|
||||||
set(CMAKE_CXX_FLAGS_MINSITEREL "${CMAKE_C_FLAGS_RELEASE} /DQT_NO_DEBUG")
|
|
||||||
|
|
||||||
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELEASE} /DQT_NO_DEBUG")
|
|
||||||
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELEASE} /DQT_NO_DEBUG")
|
|
||||||
else(MSVC_IDE)
|
|
||||||
if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|
||||||
add_definitions(-DQT_NO_DEBUG)
|
|
||||||
endif()
|
|
||||||
endif(MSVC_IDE)
|
|
||||||
|
|
||||||
endif ()
|
|
||||||
endmacro ()
|
|
||||||
|
|
||||||
# unsets the given variable
|
# unsets the given variable
|
||||||
macro (acg_unset var)
|
macro (acg_unset var)
|
||||||
set (${var} "" CACHE INTERNAL "")
|
set (${var} "" CACHE INTERNAL "")
|
||||||
@@ -314,14 +165,14 @@ endmacro ()
|
|||||||
# test for OpenMP
|
# test for OpenMP
|
||||||
macro (acg_openmp)
|
macro (acg_openmp)
|
||||||
if (NOT OPENMP_NOTFOUND)
|
if (NOT OPENMP_NOTFOUND)
|
||||||
find_package(OpenMP)
|
find_package(OpenMP)
|
||||||
if (OPENMP_FOUND)
|
if (OPENMP_FOUND)
|
||||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
|
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
|
||||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
|
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
|
||||||
add_definitions(-DUSE_OPENMP)
|
add_definitions(-DUSE_OPENMP)
|
||||||
else ()
|
else ()
|
||||||
set (OPENMP_NOTFOUND 1)
|
set (OPENMP_NOTFOUND 1)
|
||||||
endif ()
|
endif()
|
||||||
endif ()
|
endif ()
|
||||||
endmacro ()
|
endmacro ()
|
||||||
|
|
||||||
@@ -380,192 +231,11 @@ macro (acg_drop_templates list)
|
|||||||
endforeach ()
|
endforeach ()
|
||||||
endmacro ()
|
endmacro ()
|
||||||
|
|
||||||
# generate moc targets for sources in list
|
|
||||||
macro (acg_qt4_automoc moc_SRCS)
|
|
||||||
qt4_get_moc_flags (_moc_INCS)
|
|
||||||
|
|
||||||
set (_matching_FILES )
|
|
||||||
foreach (_current_FILE ${ARGN})
|
|
||||||
|
|
||||||
get_filename_component (_abs_FILE ${_current_FILE} ABSOLUTE)
|
|
||||||
# if "SKIP_AUTOMOC" is set to true, we will not handle this file here.
|
|
||||||
# here. this is required to make bouic work correctly:
|
|
||||||
# we need to add generated .cpp files to the sources (to compile them),
|
|
||||||
# but we cannot let automoc handle them, as the .cpp files don't exist yet when
|
|
||||||
# cmake is run for the very first time on them -> however the .cpp files might
|
|
||||||
# exist at a later run. at that time we need to skip them, so that we don't add two
|
|
||||||
# different rules for the same moc file
|
|
||||||
get_source_file_property (_skip ${_abs_FILE} SKIP_AUTOMOC)
|
|
||||||
|
|
||||||
if ( NOT _skip AND EXISTS ${_abs_FILE} )
|
|
||||||
|
|
||||||
file (READ ${_abs_FILE} _contents)
|
|
||||||
|
|
||||||
get_filename_component (_abs_PATH ${_abs_FILE} PATH)
|
|
||||||
|
|
||||||
string (REGEX MATCHALL "Q_OBJECT" _match "${_contents}")
|
|
||||||
if (_match)
|
|
||||||
get_filename_component (_basename ${_current_FILE} NAME_WE)
|
|
||||||
set (_header ${_abs_FILE})
|
|
||||||
set (_moc ${CMAKE_CURRENT_BINARY_DIR}/moc_${_basename}.cpp)
|
|
||||||
|
|
||||||
add_custom_command (OUTPUT ${_moc}
|
|
||||||
COMMAND ${QT_MOC_EXECUTABLE}
|
|
||||||
ARGS ${_moc_INCS} ${_header} -o ${_moc}
|
|
||||||
DEPENDS ${_header}
|
|
||||||
)
|
|
||||||
|
|
||||||
add_file_dependencies (${_abs_FILE} ${_moc})
|
|
||||||
set (${moc_SRCS} ${${moc_SRCS}} ${_moc})
|
|
||||||
|
|
||||||
endif ()
|
|
||||||
endif ()
|
|
||||||
endforeach ()
|
|
||||||
endmacro ()
|
|
||||||
|
|
||||||
# generate moc targets for sources in list
|
|
||||||
macro (acg_qt5_automoc moc_SRCS)
|
|
||||||
qt5_get_moc_flags (_moc_INCS)
|
|
||||||
|
|
||||||
list(REMOVE_DUPLICATES _moc_INCS)
|
|
||||||
|
|
||||||
set (_matching_FILES )
|
|
||||||
foreach (_current_FILE ${ARGN})
|
|
||||||
|
|
||||||
get_filename_component (_abs_FILE ${_current_FILE} ABSOLUTE)
|
|
||||||
# if "SKIP_AUTOMOC" is set to true, we will not handle this file here.
|
|
||||||
# here. this is required to make bouic work correctly:
|
|
||||||
# we need to add generated .cpp files to the sources (to compile them),
|
|
||||||
# but we cannot let automoc handle them, as the .cpp files don't exist yet when
|
|
||||||
# cmake is run for the very first time on them -> however the .cpp files might
|
|
||||||
# exist at a later run. at that time we need to skip them, so that we don't add two
|
|
||||||
# different rules for the same moc file
|
|
||||||
get_source_file_property (_skip ${_abs_FILE} SKIP_AUTOMOC)
|
|
||||||
|
|
||||||
if ( NOT _skip AND EXISTS ${_abs_FILE} )
|
|
||||||
|
|
||||||
file (READ ${_abs_FILE} _contents)
|
|
||||||
|
|
||||||
get_filename_component (_abs_PATH ${_abs_FILE} PATH)
|
|
||||||
|
|
||||||
string (REGEX MATCHALL "Q_OBJECT" _match "${_contents}")
|
|
||||||
if (_match)
|
|
||||||
get_filename_component (_basename ${_current_FILE} NAME_WE)
|
|
||||||
set (_header ${_abs_FILE})
|
|
||||||
set (_moc ${CMAKE_CURRENT_BINARY_DIR}/moc_${_basename}.cpp)
|
|
||||||
|
|
||||||
add_custom_command (OUTPUT ${_moc}
|
|
||||||
COMMAND ${QT_MOC_EXECUTABLE}
|
|
||||||
ARGS ${_moc_INCS} ${_header} -o ${_moc}
|
|
||||||
DEPENDS ${_header}
|
|
||||||
)
|
|
||||||
|
|
||||||
add_file_dependencies (${_abs_FILE} ${_moc})
|
|
||||||
set (${moc_SRCS} ${${moc_SRCS}} ${_moc})
|
|
||||||
|
|
||||||
endif ()
|
|
||||||
endif ()
|
|
||||||
endforeach ()
|
|
||||||
endmacro ()
|
|
||||||
|
|
||||||
# generate uic targets for sources in list
|
|
||||||
macro (acg_qt4_autouic uic_SRCS)
|
|
||||||
|
|
||||||
set (_matching_FILES )
|
|
||||||
foreach (_current_FILE ${ARGN})
|
|
||||||
|
|
||||||
get_filename_component (_abs_FILE ${_current_FILE} ABSOLUTE)
|
|
||||||
|
|
||||||
if ( EXISTS ${_abs_FILE} )
|
|
||||||
|
|
||||||
file (READ ${_abs_FILE} _contents)
|
|
||||||
|
|
||||||
get_filename_component (_abs_PATH ${_abs_FILE} PATH)
|
|
||||||
|
|
||||||
get_filename_component (_basename ${_current_FILE} NAME_WE)
|
|
||||||
string (REGEX REPLACE "Ui$" "" _cbasename ${_basename})
|
|
||||||
set (_outfile ${CMAKE_CURRENT_BINARY_DIR}/ui_${_basename}.hh)
|
|
||||||
set (_header ${_basename}.hh)
|
|
||||||
set (_source ${_abs_PATH}/${_cbasename}.cc)
|
|
||||||
|
|
||||||
add_custom_command (OUTPUT ${_outfile}
|
|
||||||
COMMAND ${QT_UIC_EXECUTABLE}
|
|
||||||
ARGS -o ${_outfile} ${_abs_FILE}
|
|
||||||
DEPENDS ${_abs_FILE})
|
|
||||||
|
|
||||||
add_file_dependencies (${_source} ${_outfile})
|
|
||||||
set (${uic_SRCS} ${${uic_SRCS}} ${_outfile})
|
|
||||||
|
|
||||||
endif ()
|
|
||||||
endforeach ()
|
|
||||||
endmacro ()
|
|
||||||
|
|
||||||
# generate uic targets for sources in list
|
|
||||||
macro (acg_qt5_autouic uic_SRCS)
|
|
||||||
|
|
||||||
set (_matching_FILES )
|
|
||||||
foreach (_current_FILE ${ARGN})
|
|
||||||
|
|
||||||
get_filename_component (_abs_FILE ${_current_FILE} ABSOLUTE)
|
|
||||||
|
|
||||||
if ( EXISTS ${_abs_FILE} )
|
|
||||||
|
|
||||||
file (READ ${_abs_FILE} _contents)
|
|
||||||
|
|
||||||
get_filename_component (_abs_PATH ${_abs_FILE} PATH)
|
|
||||||
|
|
||||||
get_filename_component (_basename ${_current_FILE} NAME_WE)
|
|
||||||
string (REGEX REPLACE "Ui$" "" _cbasename ${_basename})
|
|
||||||
set (_outfile ${CMAKE_CURRENT_BINARY_DIR}/ui_${_basename}.hh)
|
|
||||||
set (_header ${_basename}.hh)
|
|
||||||
set (_source ${_abs_PATH}/${_cbasename}.cc)
|
|
||||||
|
|
||||||
add_custom_command (OUTPUT ${_outfile}
|
|
||||||
COMMAND ${Qt5Widgets_UIC_EXECUTABLE}
|
|
||||||
ARGS -o ${_outfile} ${_abs_FILE}
|
|
||||||
MAIN_DEPENDENCY ${_abs_FILE} VERBATIM)
|
|
||||||
|
|
||||||
add_file_dependencies (${_source} ${_outfile})
|
|
||||||
set (${uic_SRCS} ${${uic_SRCS}} ${_outfile})
|
|
||||||
|
|
||||||
endif ()
|
|
||||||
endforeach ()
|
|
||||||
endmacro ()
|
|
||||||
|
|
||||||
# generate qrc targets for sources in list
|
|
||||||
macro (acg_qt4_autoqrc qrc_SRCS)
|
|
||||||
|
|
||||||
set (_matching_FILES )
|
|
||||||
foreach (_current_FILE ${ARGN})
|
|
||||||
|
|
||||||
get_filename_component (_abs_FILE ${_current_FILE} ABSOLUTE)
|
|
||||||
|
|
||||||
if ( EXISTS ${_abs_FILE} )
|
|
||||||
|
|
||||||
file (READ ${_abs_FILE} _contents)
|
|
||||||
|
|
||||||
get_filename_component (_abs_PATH ${_abs_FILE} PATH)
|
|
||||||
|
|
||||||
get_filename_component (_basename ${_current_FILE} NAME_WE)
|
|
||||||
set (_outfile ${CMAKE_CURRENT_BINARY_DIR}/qrc_${_basename}.cpp)
|
|
||||||
|
|
||||||
add_custom_command (OUTPUT ${_outfile}
|
|
||||||
COMMAND ${QT_RCC_EXECUTABLE}
|
|
||||||
ARGS -o ${_outfile} ${_abs_FILE}
|
|
||||||
DEPENDS ${_abs_FILE})
|
|
||||||
|
|
||||||
add_file_dependencies (${_source} ${_outfile})
|
|
||||||
set (${qrc_SRCS} ${${qrc_SRCS}} ${_outfile})
|
|
||||||
|
|
||||||
endif ()
|
|
||||||
endforeach ()
|
|
||||||
endmacro ()
|
|
||||||
|
|
||||||
# get all files in directory, but ignore svn
|
# get all files in directory, but ignore svn
|
||||||
macro (acg_get_files_in_dir ret dir)
|
macro (acg_get_files_in_dir ret dir)
|
||||||
file (GLOB_RECURSE __files RELATIVE "${dir}" "${dir}/*")
|
file (GLOB_RECURSE __files RELATIVE "${dir}" "${dir}/*")
|
||||||
foreach (_file ${__files})
|
foreach (_file ${__files})
|
||||||
if (NOT _file MATCHES ".*svn.*")
|
if ( (NOT _file MATCHES ".*svn.*") AND (NOT _file MATCHES ".DS_Store") )
|
||||||
list (APPEND ${ret} "${_file}")
|
list (APPEND ${ret} "${_file}")
|
||||||
endif ()
|
endif ()
|
||||||
endforeach ()
|
endforeach ()
|
||||||
@@ -600,7 +270,7 @@ function (acg_add_executable _target)
|
|||||||
|
|
||||||
# set common target properties defined in common.cmake
|
# set common target properties defined in common.cmake
|
||||||
acg_set_target_props (${_target})
|
acg_set_target_props (${_target})
|
||||||
|
|
||||||
if (WIN32 OR (APPLE AND NOT ACG_PROJECT_MACOS_BUNDLE))
|
if (WIN32 OR (APPLE AND NOT ACG_PROJECT_MACOS_BUNDLE))
|
||||||
add_custom_command (TARGET ${_target} POST_BUILD
|
add_custom_command (TARGET ${_target} POST_BUILD
|
||||||
COMMAND ${CMAKE_COMMAND} -E
|
COMMAND ${CMAKE_COMMAND} -E
|
||||||
@@ -656,7 +326,7 @@ function (acg_add_library _target _libtype)
|
|||||||
copy_if_different
|
copy_if_different
|
||||||
$<TARGET_FILE:${_target}>
|
$<TARGET_FILE:${_target}>
|
||||||
${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_LIBDIR}/$<TARGET_FILE_NAME:${_target}>)
|
${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_LIBDIR}/$<TARGET_FILE_NAME:${_target}>)
|
||||||
add_custom_command (TARGET ${_target} POST_BUILD
|
add_custom_command (TARGET ${_target} POST_BUILD
|
||||||
COMMAND ${CMAKE_COMMAND} -E
|
COMMAND ${CMAKE_COMMAND} -E
|
||||||
copy_if_different
|
copy_if_different
|
||||||
$<TARGET_LINKER_FILE:${_target}>
|
$<TARGET_LINKER_FILE:${_target}>
|
||||||
@@ -671,22 +341,22 @@ function (acg_add_library _target _libtype)
|
|||||||
$<TARGET_FILE:${_target}>
|
$<TARGET_FILE:${_target}>
|
||||||
${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_PLUGINDIR}/$<TARGET_FILE_NAME:${_target}>)
|
${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_PLUGINDIR}/$<TARGET_FILE_NAME:${_target}>)
|
||||||
elseif (${_type} STREQUAL STATIC)
|
elseif (${_type} STREQUAL STATIC)
|
||||||
add_custom_command (TARGET ${_target} POST_BUILD
|
add_custom_command (TARGET ${_target} POST_BUILD
|
||||||
COMMAND ${CMAKE_COMMAND} -E
|
COMMAND ${CMAKE_COMMAND} -E
|
||||||
copy_if_different
|
copy_if_different
|
||||||
$<TARGET_FILE:${_target}>
|
$<TARGET_FILE:${_target}>
|
||||||
${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_LIBDIR}/$<TARGET_FILE_NAME:${_target}>)
|
${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_LIBDIR}/$<TARGET_FILE_NAME:${_target}>)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
# make an extra copy for windows into the binary directory
|
# make an extra copy for windows into the binary directory
|
||||||
if (${_type} STREQUAL SHARED AND WIN32)
|
if (${_type} STREQUAL SHARED AND WIN32)
|
||||||
add_custom_command (TARGET ${_target} POST_BUILD
|
add_custom_command (TARGET ${_target} POST_BUILD
|
||||||
COMMAND ${CMAKE_COMMAND} -E
|
COMMAND ${CMAKE_COMMAND} -E
|
||||||
copy_if_different
|
copy_if_different
|
||||||
$<TARGET_FILE:${_target}>
|
$<TARGET_FILE:${_target}>
|
||||||
${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_BINDIR}/$<TARGET_FILE_NAME:${_target}>)
|
${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_BINDIR}/$<TARGET_FILE_NAME:${_target}>)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
endif( (WIN32 AND MSVC) OR (APPLE AND NOT ACG_PROJECT_MACOS_BUNDLE))
|
endif( (WIN32 AND MSVC) OR (APPLE AND NOT ACG_PROJECT_MACOS_BUNDLE))
|
||||||
|
|
||||||
@@ -720,57 +390,3 @@ function (acg_add_library _target _libtype)
|
|||||||
|
|
||||||
endfunction ()
|
endfunction ()
|
||||||
|
|
||||||
#generates qt translations
|
|
||||||
function (acg_add_translations _target _languages _sources)
|
|
||||||
|
|
||||||
string (TOUPPER ${_target} _TARGET)
|
|
||||||
# generate/use translation files
|
|
||||||
# run with UPDATE_TRANSLATIONS set to on to build qm files
|
|
||||||
option (UPDATE_TRANSLATIONS_${_TARGET} "Update source translation *.ts files (WARNING: make clean will delete the source .ts files! Danger!)")
|
|
||||||
|
|
||||||
set (_new_ts_files)
|
|
||||||
set (_ts_files)
|
|
||||||
|
|
||||||
foreach (lang ${_languages})
|
|
||||||
if (NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/translations/${_target}_${lang}.ts" OR UPDATE_TRANSLATIONS_${_TARGET})
|
|
||||||
list (APPEND _new_ts_files "translations/${_target}_${lang}.ts")
|
|
||||||
else ()
|
|
||||||
list (APPEND _ts_files "translations/${_target}_${lang}.ts")
|
|
||||||
endif ()
|
|
||||||
endforeach ()
|
|
||||||
|
|
||||||
|
|
||||||
set (_qm_files)
|
|
||||||
if ( _new_ts_files )
|
|
||||||
qt4_create_translation(_qm_files ${_sources} ${_new_ts_files})
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
if ( _ts_files )
|
|
||||||
qt4_add_translation(_qm_files2 ${_ts_files})
|
|
||||||
list (APPEND _qm_files ${_qm_files2})
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
# create a target for the translation files ( and object files )
|
|
||||||
# Use this target, to update only the translations
|
|
||||||
add_custom_target (translations_target_${_target} DEPENDS ${_qm_files})
|
|
||||||
|
|
||||||
# Build translations with the application
|
|
||||||
add_dependencies(${_target} translations_target_${_target} )
|
|
||||||
|
|
||||||
if (NOT EXISTS ${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_DATADIR}/Translations)
|
|
||||||
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_DATADIR}/Translations )
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
foreach (_qm ${_qm_files})
|
|
||||||
get_filename_component (_qm_name "${_qm}" NAME)
|
|
||||||
add_custom_command (TARGET translations_target_${_target} POST_BUILD
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E
|
|
||||||
copy_if_different
|
|
||||||
${_qm}
|
|
||||||
${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_DATADIR}/Translations/${_qm_name})
|
|
||||||
endforeach ()
|
|
||||||
|
|
||||||
if (NOT ACG_PROJECT_MACOS_BUNDLE OR NOT APPLE)
|
|
||||||
install (FILES ${_qm_files} DESTINATION "${ACG_PROJECT_DATADIR}/Translations")
|
|
||||||
endif ()
|
|
||||||
endfunction ()
|
|
||||||
|
|||||||
396
cmake/ACGQt.cmake
Normal file
396
cmake/ACGQt.cmake
Normal file
@@ -0,0 +1,396 @@
|
|||||||
|
#unset cached qt variables which are set by all qt versions. version is the major number of the qt version (e.g. 4 or 5, not 4.8)
|
||||||
|
macro (acg_unset_qt_shared_variables version)
|
||||||
|
if (ACG_INTERNAL_QT_LAST_VERSION)
|
||||||
|
if (NOT ${ACG_INTERNAL_QT_LAST_VERSION} EQUAL ${version})
|
||||||
|
unset(QT_BINARY_DIR)
|
||||||
|
unset(QT_PLUGINS_DIR)
|
||||||
|
unset(ACG_INTERNAL_QT_LAST_VERSION)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
set (ACG_INTERNAL_QT_LAST_VERSION "${version}" CACHE INTERNAL "Qt Version, which was used on the last time")
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
macro (acg_qt5)
|
||||||
|
|
||||||
|
if(POLICY CMP0020)
|
||||||
|
# Automatically link Qt executables to qtmain target on Windows
|
||||||
|
cmake_policy(SET CMP0020 NEW)
|
||||||
|
endif(POLICY CMP0020)
|
||||||
|
#if (NOT QT5_FOUND)
|
||||||
|
|
||||||
|
#set (QT_MIN_VERSION ${ARGN})
|
||||||
|
|
||||||
|
#try to find qt5 automatically
|
||||||
|
#for custom installation of qt5, dont use any of these variables
|
||||||
|
set (QT5_INSTALL_PATH "" CACHE PATH "Path to Qt5 directory which contains lib and include folder")
|
||||||
|
|
||||||
|
if (EXISTS "${QT5_INSTALL_PATH}")
|
||||||
|
set (CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH};${QT5_INSTALL_PATH}")
|
||||||
|
set (QT5_INSTALL_PATH_EXISTS TRUE)
|
||||||
|
endif(EXISTS "${QT5_INSTALL_PATH}")
|
||||||
|
|
||||||
|
set(QT5_FINDER_FLAGS "" CACHE STRING "Flags for the Qt finder e.g.
|
||||||
|
NO_DEFAULT_PATH if no system installed Qt shall be found")
|
||||||
|
# compute default search paths
|
||||||
|
set(SUPPORTED_QT_VERSIONS 5.9 5.8 5.7 5.6)
|
||||||
|
foreach (suffix gcc_64 clang_64)
|
||||||
|
foreach(version ${SUPPORTED_QT_VERSIONS})
|
||||||
|
list(APPEND QT_DEFAULT_PATH "~/sw/Qt/${version}/${suffix}")
|
||||||
|
endforeach()
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
find_package (Qt5Core PATHS ${QT_DEFAULT_PATH} ${QT5_FINDER_FLAGS})
|
||||||
|
if(Qt5Core_FOUND)
|
||||||
|
|
||||||
|
if(Qt5Core_VERSION) # use the new version variable if it is set
|
||||||
|
set(Qt5Core_VERSION_STRING ${Qt5Core_VERSION})
|
||||||
|
endif(Qt5Core_VERSION)
|
||||||
|
|
||||||
|
string(REGEX REPLACE "^([0-9]+)\\.[0-9]+\\.[0-9]+.*" "\\1" QT_VERSION_MAJOR "${Qt5Core_VERSION_STRING}")
|
||||||
|
string(REGEX REPLACE "^[0-9]+\\.([0-9]+)\\.[0-9]+.*" "\\1" QT_VERSION_MINOR "${Qt5Core_VERSION_STRING}")
|
||||||
|
string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" QT_VERSION_PATCH "${Qt5Core_VERSION_STRING}")
|
||||||
|
|
||||||
|
find_package (Qt5Widgets QUIET PATHS ${QT_DEFAULT_PATH} ${QT5_FINDER_FLAGS})
|
||||||
|
find_package (Qt5Gui QUIET PATHS ${QT_DEFAULT_PATH} ${QT5_FINDER_FLAGS})
|
||||||
|
find_package (Qt5OpenGL QUIET PATHS ${QT_DEFAULT_PATH} ${QT5_FINDER_FLAGS})
|
||||||
|
find_package (Qt5Network QUIET PATHS ${QT_DEFAULT_PATH} ${QT5_FINDER_FLAGS})
|
||||||
|
find_package (Qt5Sql QUIET PATHS ${QT_DEFAULT_PATH} ${QT5_FINDER_FLAGS})
|
||||||
|
find_package (Qt5Script QUIET PATHS ${QT_DEFAULT_PATH} ${QT5_FINDER_FLAGS})
|
||||||
|
find_package (Qt5ScriptTools QUIET PATHS ${QT_DEFAULT_PATH} ${QT5_FINDER_FLAGS})
|
||||||
|
find_package (Qt5Xml QUIET PATHS ${QT_DEFAULT_PATH} ${QT5_FINDER_FLAGS})
|
||||||
|
find_package (Qt5XmlPatterns QUIET PATHS ${QT_DEFAULT_PATH} ${QT5_FINDER_FLAGS})
|
||||||
|
find_package (Qt5Help QUIET PATHS ${QT_DEFAULT_PATH} ${QT5_FINDER_FLAGS})
|
||||||
|
find_package (Qt5UiTools QUIET PATHS ${QT_DEFAULT_PATH} ${QT5_FINDER_FLAGS})
|
||||||
|
find_package (Qt5Svg QUIET PATHS ${QT_DEFAULT_PATH} ${QT5_FINDER_FLAGS})
|
||||||
|
find_package (Qt5PrintSupport QUIET PATHS ${QT_DEFAULT_PATH} ${QT5_FINDER_FLAGS})
|
||||||
|
find_package (Qt5Concurrent QUIET PATHS ${QT_DEFAULT_PATH} ${QT5_FINDER_FLAGS})
|
||||||
|
|
||||||
|
#do noot look for Webkit and qt declarative on qt version 5.6 or newer
|
||||||
|
if(${QT_VERSION_MINOR} LESS 6)
|
||||||
|
find_package (Qt5Declarative QUIET PATHS ${QT_DEFAULT_PATH} ${QT5_FINDER_FLAGS})
|
||||||
|
find_package (Qt5WebKit QUIET PATHS ${QT_DEFAULT_PATH} ${QT5_FINDER_FLAGS})
|
||||||
|
endif(${QT_VERSION_MINOR} LESS 6)
|
||||||
|
|
||||||
|
if (NOT WIN32 AND NOT APPLE)
|
||||||
|
find_package (Qt5X11Extras QUIET PATHS ${QT_DEFAULT_PATH} ${QT5_FINDER_FLAGS})
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if(${QT_VERSION_MINOR} GREATER 5)
|
||||||
|
if (Qt5Core_FOUND AND Qt5Widgets_FOUND
|
||||||
|
AND Qt5Gui_FOUND AND Qt5OpenGL_FOUND AND Qt5Network_FOUND
|
||||||
|
AND Qt5Script_FOUND AND Qt5ScriptTools_FOUND AND Qt5Sql_FOUND
|
||||||
|
AND Qt5Xml_FOUND AND Qt5XmlPatterns_FOUND AND Qt5Help_FOUND
|
||||||
|
AND Qt5UiTools_FOUND AND Qt5Concurrent_FOUND
|
||||||
|
AND Qt5PrintSupport_FOUND)
|
||||||
|
set (QT5_FOUND TRUE)
|
||||||
|
endif()
|
||||||
|
else(${QT_VERSION_MINOR} GREATER 5)
|
||||||
|
if (Qt5Core_FOUND AND Qt5Declarative_FOUND AND Qt5Widgets_FOUND
|
||||||
|
AND Qt5Gui_FOUND AND Qt5OpenGL_FOUND AND Qt5Network_FOUND
|
||||||
|
AND Qt5Script_FOUND AND Qt5ScriptTools_FOUND AND Qt5Sql_FOUND
|
||||||
|
AND Qt5Xml_FOUND AND Qt5XmlPatterns_FOUND AND Qt5Help_FOUND
|
||||||
|
AND Qt5WebKit_FOUND AND Qt5UiTools_FOUND AND Qt5Concurrent_FOUND
|
||||||
|
AND Qt5PrintSupport_FOUND)
|
||||||
|
set (QT5_FOUND TRUE)
|
||||||
|
endif()
|
||||||
|
endif(${QT_VERSION_MINOR} GREATER 5)
|
||||||
|
endif(Qt5Core_FOUND)
|
||||||
|
|
||||||
|
if (QT5_FOUND)
|
||||||
|
acg_unset_qt_shared_variables(5)
|
||||||
|
|
||||||
|
#set plugin dir
|
||||||
|
list(GET Qt5Gui_PLUGINS 0 _plugin)
|
||||||
|
if (_plugin)
|
||||||
|
get_target_property(_plugin_full ${_plugin} LOCATION)
|
||||||
|
get_filename_component(_plugin_dir ${_plugin_full} PATH)
|
||||||
|
set (QT_PLUGINS_DIR "${_plugin_dir}/../" CACHE PATH "Path to the qt plugin directory")
|
||||||
|
elseif(QT5_INSTALL_PATH_EXISTS)
|
||||||
|
set (QT_PLUGINS_DIR "${QT5_INSTALL_PATH}/plugins/" CACHE PATH "Path to the qt plugin directory")
|
||||||
|
elseif()
|
||||||
|
set (QT_PLUGINS_DIR "QT_PLUGIN_DIR_NOT_FOUND" CACHE PATH "Path to the qt plugin directory")
|
||||||
|
endif(_plugin)
|
||||||
|
|
||||||
|
#set binary dir for fixupbundle
|
||||||
|
if(QT5_INSTALL_PATH_EXISTS)
|
||||||
|
set(_QT_BINARY_DIR "${QT5_INSTALL_PATH}/bin")
|
||||||
|
else()
|
||||||
|
get_target_property(_QT_BINARY_DIR ${Qt5Widgets_UIC_EXECUTABLE} LOCATION)
|
||||||
|
get_filename_component(_QT_BINARY_DIR ${_QT_BINARY_DIR} PATH)
|
||||||
|
endif(QT5_INSTALL_PATH_EXISTS)
|
||||||
|
|
||||||
|
set (QT_BINARY_DIR "${_QT_BINARY_DIR}" CACHE PATH "Qt5 binary Directory")
|
||||||
|
mark_as_advanced(QT_BINARY_DIR)
|
||||||
|
|
||||||
|
set (CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
||||||
|
|
||||||
|
include_directories(${Qt5Core_INCLUDE_DIRS})
|
||||||
|
include_directories(${Qt5Declarative_INCLUDE_DIRS})
|
||||||
|
include_directories(${Qt5Widgets_INCLUDE_DIRS})
|
||||||
|
include_directories(${Qt5Gui_INCLUDE_DIRS})
|
||||||
|
include_directories(${Qt5OpenGL_INCLUDE_DIRS})
|
||||||
|
include_directories(${Qt5Network_INCLUDE_DIRS})
|
||||||
|
include_directories(${Qt5Script_INCLUDE_DIRS})
|
||||||
|
include_directories(${Qt5ScriptTools_INCLUDE_DIRS})
|
||||||
|
include_directories(${Qt5Sql_INCLUDE_DIRS})
|
||||||
|
include_directories(${Qt5Xml_INCLUDE_DIRS})
|
||||||
|
include_directories(${Qt5XmlPatterns_INCLUDE_DIRS})
|
||||||
|
include_directories(${Qt5Help_INCLUDE_DIRS})
|
||||||
|
include_directories(${Qt5WebKit_INCLUDE_DIRS})
|
||||||
|
include_directories(${Qt5UiTools_INCLUDE_DIRS})
|
||||||
|
include_directories(${Qt5Concurrent_INCLUDE_DIRS})
|
||||||
|
include_directories(${Qt5PrintSupport_INCLUDE_DIRS})
|
||||||
|
add_definitions(${Qt5Core_DEFINITIONS})
|
||||||
|
add_definitions(${Qt5Widgets_DEFINITIONS})
|
||||||
|
add_definitions(${Qt5Gui_DEFINITIONS})
|
||||||
|
add_definitions(${Qt5OpenGL_DEFINITIONS})
|
||||||
|
add_definitions(${Qt5Network_DEFINITIONS})
|
||||||
|
add_definitions(${Qt5Script_DEFINITIONS})
|
||||||
|
add_definitions(${Qt5ScriptTools_DEFINITIONS})
|
||||||
|
add_definitions(${Qt5Sql_DEFINITIONS})
|
||||||
|
add_definitions(${Qt5Xml_DEFINITIONS})
|
||||||
|
add_definitions(${Qt5XmlPatterns_DEFINITIONS})
|
||||||
|
add_definitions(${Qt5Help_DEFINITIONS})
|
||||||
|
add_definitions(${Qt5WebKit_DEFINITIONS})
|
||||||
|
add_definitions(${Qt5UiTools_DEFINITIONS})
|
||||||
|
add_definitions(${Qt5Concurrent_DEFINITIONS})
|
||||||
|
add_definitions(${Qt5PrintSupport_DEFINITIONS})
|
||||||
|
|
||||||
|
if (Qt5X11Extras_FOUND)
|
||||||
|
include_directories(${Qt5X11Extras_INCLUDE_DIRS})
|
||||||
|
add_definitions(${Qt5X11Extras_DEFINITIONS})
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if ( NOT MSVC )
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set (QT_LIBRARIES ${Qt5Core_LIBRARIES} ${Qt5Declarative_LIBRARIES} ${Qt5Widgets_LIBRARIES}
|
||||||
|
${Qt5Gui_LIBRARIES} ${Qt5OpenGL_LIBRARIES} ${Qt5Network_LIBRARIES}
|
||||||
|
${Qt5Script_LIBRARIES} ${Qt5ScriptTools_LIBRARIES} ${Qt5Sql_LIBRARIES}
|
||||||
|
${Qt5Xml_LIBRARIES} ${Qt5XmlPatterns_LIBRARIES} ${Qt5Help_LIBRARIES}
|
||||||
|
${Qt5WebKit_LIBRARIES} ${Qt5UiTools_LIBRARIES} ${Qt5Concurrent_LIBARIES}
|
||||||
|
${Qt5PrintSupport_LIBRARIES})
|
||||||
|
|
||||||
|
if (Qt5X11Extras_FOUND)
|
||||||
|
list (APPEND QT_LIBRARIES ${Qt5X11Extras_LIBRARIES})
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (MSVC)
|
||||||
|
set (QT_LIBRARIES ${QT_LIBRARIES} ${Qt5Core_QTMAIN_LIBRARIES})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
#add_definitions(-DQT_NO_OPENGL)
|
||||||
|
|
||||||
|
#adding QT_NO_DEBUG to all release modes.
|
||||||
|
# Note: for multi generators like msvc you cannot set this definition depending of
|
||||||
|
# the current build type, because it may change in the future inside the ide and not via cmake
|
||||||
|
if (MSVC_IDE)
|
||||||
|
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /DQT_NO_DEBUG")
|
||||||
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /DQT_NO_DEBUG")
|
||||||
|
|
||||||
|
set(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_RELEASE} /DQT_NO_DEBUG")
|
||||||
|
set(CMAKE_CXX_FLAGS_MINSITEREL "${CMAKE_C_FLAGS_RELEASE} /DQT_NO_DEBUG")
|
||||||
|
|
||||||
|
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELEASE} /DQT_NO_DEBUG")
|
||||||
|
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELEASE} /DQT_NO_DEBUG")
|
||||||
|
else(MSVC_IDE)
|
||||||
|
if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||||
|
add_definitions(-DQT_NO_DEBUG)
|
||||||
|
endif()
|
||||||
|
endif(MSVC_IDE)
|
||||||
|
|
||||||
|
endif ()
|
||||||
|
endmacro ()
|
||||||
|
|
||||||
|
# generate moc targets for sources in list
|
||||||
|
macro (acg_qt5_automoc moc_SRCS)
|
||||||
|
qt5_get_moc_flags (_moc_INCS)
|
||||||
|
|
||||||
|
list(REMOVE_DUPLICATES _moc_INCS)
|
||||||
|
|
||||||
|
set (_matching_FILES )
|
||||||
|
foreach (_current_FILE ${ARGN})
|
||||||
|
|
||||||
|
get_filename_component (_abs_FILE ${_current_FILE} ABSOLUTE)
|
||||||
|
# if "SKIP_AUTOMOC" is set to true, we will not handle this file here.
|
||||||
|
# here. this is required to make bouic work correctly:
|
||||||
|
# we need to add generated .cpp files to the sources (to compile them),
|
||||||
|
# but we cannot let automoc handle them, as the .cpp files don't exist yet when
|
||||||
|
# cmake is run for the very first time on them -> however the .cpp files might
|
||||||
|
# exist at a later run. at that time we need to skip them, so that we don't add two
|
||||||
|
# different rules for the same moc file
|
||||||
|
get_source_file_property (_skip ${_abs_FILE} SKIP_AUTOMOC)
|
||||||
|
|
||||||
|
if ( NOT _skip AND EXISTS ${_abs_FILE} )
|
||||||
|
|
||||||
|
file (READ ${_abs_FILE} _contents)
|
||||||
|
|
||||||
|
get_filename_component (_abs_PATH ${_abs_FILE} PATH)
|
||||||
|
|
||||||
|
string (REGEX MATCHALL "Q_OBJECT" _match "${_contents}")
|
||||||
|
if (_match)
|
||||||
|
get_filename_component (_basename ${_current_FILE} NAME_WE)
|
||||||
|
set (_header ${_abs_FILE})
|
||||||
|
set (_moc ${CMAKE_CURRENT_BINARY_DIR}/moc_${_basename}.cpp)
|
||||||
|
|
||||||
|
add_custom_command (OUTPUT ${_moc}
|
||||||
|
COMMAND ${QT_MOC_EXECUTABLE}
|
||||||
|
ARGS ${_moc_INCS} ${_header} -o ${_moc}
|
||||||
|
DEPENDS ${_header}
|
||||||
|
)
|
||||||
|
|
||||||
|
add_file_dependencies (${_abs_FILE} ${_moc})
|
||||||
|
set (${moc_SRCS} ${${moc_SRCS}} ${_moc})
|
||||||
|
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
endforeach ()
|
||||||
|
endmacro ()
|
||||||
|
|
||||||
|
# generate uic targets for sources in list
|
||||||
|
macro (acg_qt5_autouic uic_SRCS)
|
||||||
|
|
||||||
|
set (_matching_FILES )
|
||||||
|
foreach (_current_FILE ${ARGN})
|
||||||
|
|
||||||
|
get_filename_component (_abs_FILE ${_current_FILE} ABSOLUTE)
|
||||||
|
|
||||||
|
if ( EXISTS ${_abs_FILE} )
|
||||||
|
|
||||||
|
file (READ ${_abs_FILE} _contents)
|
||||||
|
|
||||||
|
get_filename_component (_abs_PATH ${_abs_FILE} PATH)
|
||||||
|
|
||||||
|
get_filename_component (_basename ${_current_FILE} NAME_WE)
|
||||||
|
string (REGEX REPLACE "Ui$" "" _cbasename ${_basename})
|
||||||
|
set (_outfile ${CMAKE_CURRENT_BINARY_DIR}/ui_${_basename}.hh)
|
||||||
|
set (_header ${_basename}.hh)
|
||||||
|
set (_source ${_abs_PATH}/${_cbasename}.cc)
|
||||||
|
|
||||||
|
add_custom_command (OUTPUT ${_outfile}
|
||||||
|
COMMAND ${Qt5Widgets_UIC_EXECUTABLE}
|
||||||
|
ARGS -o ${_outfile} ${_abs_FILE}
|
||||||
|
MAIN_DEPENDENCY ${_abs_FILE} VERBATIM)
|
||||||
|
|
||||||
|
add_file_dependencies (${_source} ${_outfile})
|
||||||
|
set (${uic_SRCS} ${${uic_SRCS}} ${_outfile})
|
||||||
|
|
||||||
|
endif ()
|
||||||
|
endforeach ()
|
||||||
|
endmacro ()
|
||||||
|
|
||||||
|
# generate qrc targets for sources in list
|
||||||
|
macro (acg_qt5_autoqrc qrc_SRCS)
|
||||||
|
|
||||||
|
set (_matching_FILES )
|
||||||
|
foreach (_current_FILE ${ARGN})
|
||||||
|
|
||||||
|
get_filename_component (_abs_FILE ${_current_FILE} ABSOLUTE)
|
||||||
|
|
||||||
|
if ( EXISTS ${_abs_FILE} )
|
||||||
|
|
||||||
|
file (READ ${_abs_FILE} _contents)
|
||||||
|
|
||||||
|
get_filename_component (_abs_PATH ${_abs_FILE} PATH)
|
||||||
|
|
||||||
|
get_filename_component (_basename ${_current_FILE} NAME_WE)
|
||||||
|
set (_outfile ${CMAKE_CURRENT_BINARY_DIR}/qrc_${_basename}.cpp)
|
||||||
|
|
||||||
|
qt5_add_resources( ${_outfile} ${_abs_FILE} )
|
||||||
|
|
||||||
|
add_file_dependencies (${_source} ${_outfile})
|
||||||
|
set (${qrc_SRCS} ${${qrc_SRCS}} ${_outfile})
|
||||||
|
|
||||||
|
endif ()
|
||||||
|
endforeach ()
|
||||||
|
endmacro ()
|
||||||
|
|
||||||
|
|
||||||
|
#generates qt translations
|
||||||
|
function (acg_add_translations _target _languages _sources)
|
||||||
|
|
||||||
|
string (TOUPPER ${_target} _TARGET)
|
||||||
|
# generate/use translation files
|
||||||
|
# run with UPDATE_TRANSLATIONS set to on to build qm files
|
||||||
|
option (UPDATE_TRANSLATIONS_${_TARGET} "Update source translation *.ts files (WARNING: make clean will delete the source .ts files! Danger!)")
|
||||||
|
|
||||||
|
set (_new_ts_files)
|
||||||
|
set (_ts_files)
|
||||||
|
|
||||||
|
foreach (lang ${_languages})
|
||||||
|
if (NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/translations/${_target}_${lang}.ts" OR UPDATE_TRANSLATIONS_${_TARGET})
|
||||||
|
list (APPEND _new_ts_files "translations/${_target}_${lang}.ts")
|
||||||
|
else ()
|
||||||
|
list (APPEND _ts_files "translations/${_target}_${lang}.ts")
|
||||||
|
endif ()
|
||||||
|
endforeach ()
|
||||||
|
|
||||||
|
|
||||||
|
set (_qm_files)
|
||||||
|
if ( _new_ts_files )
|
||||||
|
if (QT5_FOUND)
|
||||||
|
#qt5_create_translation(_qm_files ${_sources} ${_new_ts_files})
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if ( _ts_files )
|
||||||
|
if (QT5_FOUND)
|
||||||
|
#qt5_add_translation(_qm_files2 ${_ts_files})
|
||||||
|
endif()
|
||||||
|
list (APPEND _qm_files ${_qm_files2})
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
# create a target for the translation files ( and object files )
|
||||||
|
# Use this target, to update only the translations
|
||||||
|
add_custom_target (tr_${_target} DEPENDS ${_qm_files})
|
||||||
|
GROUP_PROJECT( tr_${_target} "Translations")
|
||||||
|
|
||||||
|
# Build translations with the application
|
||||||
|
add_dependencies(${_target} tr_${_target} )
|
||||||
|
|
||||||
|
if (NOT EXISTS ${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_DATADIR}/Translations)
|
||||||
|
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_DATADIR}/Translations )
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
foreach (_qm ${_qm_files})
|
||||||
|
get_filename_component (_qm_name "${_qm}" NAME)
|
||||||
|
add_custom_command (TARGET tr_${_target} POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E
|
||||||
|
copy_if_different
|
||||||
|
${_qm}
|
||||||
|
${CMAKE_BINARY_DIR}/Build/${ACG_PROJECT_DATADIR}/Translations/${_qm_name})
|
||||||
|
endforeach ()
|
||||||
|
|
||||||
|
if (NOT ACG_PROJECT_MACOS_BUNDLE OR NOT APPLE)
|
||||||
|
install (FILES ${_qm_files} DESTINATION "${ACG_PROJECT_DATADIR}/Translations")
|
||||||
|
endif ()
|
||||||
|
endfunction ()
|
||||||
|
|
||||||
|
# Function that writes all generated qch files into one Help.qhcp project file
|
||||||
|
function (generate_qhp_file files_loc plugin_name)
|
||||||
|
|
||||||
|
set(qhp_file "${files_loc}/${plugin_name}.qhp")
|
||||||
|
# Read in template file
|
||||||
|
file(STRINGS "${CMAKE_SOURCE_DIR}/OpenFlipper/Documentation/QtHelpResources/QtHelpProject.qhp" qhp_template)
|
||||||
|
|
||||||
|
# Initialize new project file
|
||||||
|
file(WRITE ${qhp_file} "")
|
||||||
|
foreach (_line ${qhp_template})
|
||||||
|
string(STRIP ${_line} stripped)
|
||||||
|
if("${stripped}" STREQUAL "files")
|
||||||
|
acg_get_files_in_dir (_files ${files_loc})
|
||||||
|
foreach (_file ${_files})
|
||||||
|
string(REGEX MATCH ".+[.]+((html)|(htm)|(xml))$" fileresult ${_file})
|
||||||
|
string(LENGTH "${fileresult}" len)
|
||||||
|
if(${len} GREATER 0)
|
||||||
|
file(APPEND ${qhp_file} "<file>${_file}</file>\n")
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
else()
|
||||||
|
string(REGEX REPLACE "plugin" ${plugin} newline ${_line})
|
||||||
|
file(APPEND ${qhp_file} "${newline}\n")
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
endfunction()
|
||||||
|
|
||||||
@@ -32,6 +32,10 @@ if( WIN32 )
|
|||||||
SET(VS_SEARCH_PATH "${CMAKE_WINDOWS_LIBS_DIR}/vs2015/x64/")
|
SET(VS_SEARCH_PATH "${CMAKE_WINDOWS_LIBS_DIR}/vs2015/x64/")
|
||||||
elseif ( CMAKE_GENERATOR MATCHES "^Visual Studio 14.*" )
|
elseif ( CMAKE_GENERATOR MATCHES "^Visual Studio 14.*" )
|
||||||
SET(VS_SEARCH_PATH "${CMAKE_WINDOWS_LIBS_DIR}/vs2015/x32/")
|
SET(VS_SEARCH_PATH "${CMAKE_WINDOWS_LIBS_DIR}/vs2015/x32/")
|
||||||
|
elseif ( CMAKE_GENERATOR MATCHES "^Visual Studio 15.*Win64" )
|
||||||
|
SET(VS_SEARCH_PATH "${CMAKE_WINDOWS_LIBS_DIR}/vs2017/x64/")
|
||||||
|
elseif ( CMAKE_GENERATOR MATCHES "^Visual Studio 15.*" )
|
||||||
|
SET(VS_SEARCH_PATH "${CMAKE_WINDOWS_LIBS_DIR}/vs2017/x32/")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if( MSVC80 )
|
if( MSVC80 )
|
||||||
@@ -45,7 +49,9 @@ if( WIN32 )
|
|||||||
PATHS "${CMAKE_WINDOWS_LIBS_DIR}/glew/include"
|
PATHS "${CMAKE_WINDOWS_LIBS_DIR}/glew/include"
|
||||||
"${CMAKE_WINDOWS_LIBS_DIR}/glew-1.6.0/include"
|
"${CMAKE_WINDOWS_LIBS_DIR}/glew-1.6.0/include"
|
||||||
${COMPILER_PATH}/PlatformSDK/Include
|
${COMPILER_PATH}/PlatformSDK/Include
|
||||||
"${VS_SEARCH_PATH}glew-1.10.0/include")
|
"${VS_SEARCH_PATH}glew-2.0.0/include"
|
||||||
|
"${VS_SEARCH_PATH}glew-1.10.0/include"
|
||||||
|
"${VS_SEARCH_PATH}glew-1.13.0/include")
|
||||||
|
|
||||||
SET( GLEW_NAMES glew32 )
|
SET( GLEW_NAMES glew32 )
|
||||||
FIND_LIBRARY( GLEW_LIBRARY
|
FIND_LIBRARY( GLEW_LIBRARY
|
||||||
@@ -53,7 +59,9 @@ if( WIN32 )
|
|||||||
PATHS "${CMAKE_WINDOWS_LIBS_DIR}/glew/lib"
|
PATHS "${CMAKE_WINDOWS_LIBS_DIR}/glew/lib"
|
||||||
"${CMAKE_WINDOWS_LIBS_DIR}/glew-1.6.0/lib"
|
"${CMAKE_WINDOWS_LIBS_DIR}/glew-1.6.0/lib"
|
||||||
${COMPILER_PATH}/PlatformSDK/Lib
|
${COMPILER_PATH}/PlatformSDK/Lib
|
||||||
"${VS_SEARCH_PATH}glew-1.10.0/lib" )
|
"${VS_SEARCH_PATH}glew-2.0.0/lib"
|
||||||
|
"${VS_SEARCH_PATH}glew-1.10.0/lib"
|
||||||
|
"${VS_SEARCH_PATH}glew-1.13.0/lib" )
|
||||||
|
|
||||||
else( WIN32 )
|
else( WIN32 )
|
||||||
FIND_PATH( GLEW_INCLUDE_DIR GL/glew.h GL/wglew.h
|
FIND_PATH( GLEW_INCLUDE_DIR GL/glew.h GL/wglew.h
|
||||||
|
|||||||
@@ -40,6 +40,10 @@ IF (WIN32)
|
|||||||
SET(VS_SEARCH_PATH "${CMAKE_WINDOWS_LIBS_DIR}/vs2015/x64/")
|
SET(VS_SEARCH_PATH "${CMAKE_WINDOWS_LIBS_DIR}/vs2015/x64/")
|
||||||
elseif ( CMAKE_GENERATOR MATCHES "^Visual Studio 14.*" )
|
elseif ( CMAKE_GENERATOR MATCHES "^Visual Studio 14.*" )
|
||||||
SET(VS_SEARCH_PATH "${CMAKE_WINDOWS_LIBS_DIR}/vs2015/x32/")
|
SET(VS_SEARCH_PATH "${CMAKE_WINDOWS_LIBS_DIR}/vs2015/x32/")
|
||||||
|
elseif ( CMAKE_GENERATOR MATCHES "^Visual Studio 15.*Win64" )
|
||||||
|
SET(VS_SEARCH_PATH "${CMAKE_WINDOWS_LIBS_DIR}/vs2017/x64/")
|
||||||
|
elseif ( CMAKE_GENERATOR MATCHES "^Visual Studio 15.*" )
|
||||||
|
SET(VS_SEARCH_PATH "${CMAKE_WINDOWS_LIBS_DIR}/vs2017/x32/")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
@@ -49,7 +53,17 @@ IF (WIN32)
|
|||||||
"${VS_SEARCH_PATH}/freeglut-3.0.0/include"
|
"${VS_SEARCH_PATH}/freeglut-3.0.0/include"
|
||||||
"${VS_SEARCH_PATH}/freeglut-2.8.1/include" )
|
"${VS_SEARCH_PATH}/freeglut-2.8.1/include" )
|
||||||
|
|
||||||
FIND_LIBRARY( GLUT_glut_LIBRARY NAMES glut32 glut freeglut
|
FIND_LIBRARY( GLUT_release_LIBRARY NAMES glut32 glut freeglut
|
||||||
|
PATHS
|
||||||
|
${OPENGL_LIBRARY_DIR}
|
||||||
|
${GLUT_ROOT_PATH}/Release
|
||||||
|
"${CMAKE_WINDOWS_LIBS_DIR}/glut-3.7/lib"
|
||||||
|
"${VS_SEARCH_PATH}/freeglut-3.0.0/lib"
|
||||||
|
"${VS_SEARCH_PATH}/freeglut-2.8.1/lib"
|
||||||
|
)
|
||||||
|
GET_FILENAME_COMPONENT( GLUT_LIBRARY_DIR ${GLUT_release_LIBRARY} PATH )
|
||||||
|
|
||||||
|
FIND_LIBRARY( GLUT_debug_LIBRARY NAMES glut32d glutd freeglutd
|
||||||
PATHS
|
PATHS
|
||||||
${OPENGL_LIBRARY_DIR}
|
${OPENGL_LIBRARY_DIR}
|
||||||
${GLUT_ROOT_PATH}/Release
|
${GLUT_ROOT_PATH}/Release
|
||||||
@@ -58,7 +72,7 @@ IF (WIN32)
|
|||||||
"${VS_SEARCH_PATH}/freeglut-2.8.1/lib"
|
"${VS_SEARCH_PATH}/freeglut-2.8.1/lib"
|
||||||
)
|
)
|
||||||
|
|
||||||
GET_FILENAME_COMPONENT( GLUT_LIBRARY_DIR ${GLUT_glut_LIBRARY} PATH )
|
set(GLUT_glut_LIBRARY optimized ${GLUT_release_LIBRARY} debug ${GLUT_debug_LIBRARY} CACHE STRING "Path to the glut libraries")
|
||||||
|
|
||||||
ELSE (WIN32)
|
ELSE (WIN32)
|
||||||
|
|
||||||
@@ -99,9 +113,12 @@ ENDIF (WIN32)
|
|||||||
SET( GLUT_FOUND "NO" )
|
SET( GLUT_FOUND "NO" )
|
||||||
IF(GLUT_INCLUDE_DIR)
|
IF(GLUT_INCLUDE_DIR)
|
||||||
IF(GLUT_glut_LIBRARY)
|
IF(GLUT_glut_LIBRARY)
|
||||||
|
# Is -lXi and -lXmu required on all platforms that have it?
|
||||||
|
# If not, we need some way to figure out what platform we are on.
|
||||||
SET( GLUT_LIBRARIES
|
SET( GLUT_LIBRARIES
|
||||||
${GLUT_glut_LIBRARY}
|
${GLUT_glut_LIBRARY}
|
||||||
|
${GLUT_Xmu_LIBRARY}
|
||||||
|
${GLUT_Xi_LIBRARY}
|
||||||
${GLUT_cocoa_LIBRARY}
|
${GLUT_cocoa_LIBRARY}
|
||||||
)
|
)
|
||||||
SET( GLUT_FOUND "YES" )
|
SET( GLUT_FOUND "YES" )
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ else(GTEST_INCLUDE_DIRS AND GTEST_LIBRARIES AND GTEST_MAIN_LIBRARIES)
|
|||||||
/ACG/acgdev/gcc-x86_64/gtest/lib
|
/ACG/acgdev/gcc-x86_64/gtest/lib
|
||||||
/opt/local/lib
|
/opt/local/lib
|
||||||
/usr/local/lib
|
/usr/local/lib
|
||||||
/usr/lib
|
/usr/include
|
||||||
"C:/libs/win32/gtest/lib"
|
"C:/libs/win32/gtest/lib"
|
||||||
NO_DEFAULT_PATH )
|
NO_DEFAULT_PATH )
|
||||||
find_library(_GTEST_MAIN_LIBRARY gtest_main
|
find_library(_GTEST_MAIN_LIBRARY gtest_main
|
||||||
@@ -70,7 +70,7 @@ else(GTEST_INCLUDE_DIRS AND GTEST_LIBRARIES AND GTEST_MAIN_LIBRARIES)
|
|||||||
/ACG/acgdev/gcc-x86_64/gtest/lib
|
/ACG/acgdev/gcc-x86_64/gtest/lib
|
||||||
/opt/local/lib
|
/opt/local/lib
|
||||||
/usr/local/lib
|
/usr/local/lib
|
||||||
/usr/lib
|
/usr/include
|
||||||
"C:/libs/win32/gtest/lib"
|
"C:/libs/win32/gtest/lib"
|
||||||
NO_DEFAULT_PATH )
|
NO_DEFAULT_PATH )
|
||||||
|
|
||||||
@@ -84,24 +84,29 @@ else(GTEST_INCLUDE_DIRS AND GTEST_LIBRARIES AND GTEST_MAIN_LIBRARIES)
|
|||||||
set(GTEST_INCLUDE_DIRS ${_GTEST_INCLUDE_DIR} CACHE PATH
|
set(GTEST_INCLUDE_DIRS ${_GTEST_INCLUDE_DIR} CACHE PATH
|
||||||
"Include directories for Google Test framework")
|
"Include directories for Google Test framework")
|
||||||
|
|
||||||
if ( NOT WIN32 )
|
if ( NOT WIN32 )
|
||||||
set(GTEST_LIBRARIES ${_GTEST_LIBRARY} CACHE FILEPATH
|
set(GTEST_LIBRARIES ${_GTEST_LIBRARY} CACHE FILEPATH
|
||||||
"Libraries to link for Google Test framework")
|
"Libraries to link for Google Test framework")
|
||||||
set(GTEST_MAIN_LIBRARIES ${_GTEST_MAIN_LIBRARY} CACHE FILEPATH
|
set(GTEST_MAIN_LIBRARIES ${_GTEST_MAIN_LIBRARY} CACHE FILEPATH
|
||||||
"Libraries to link for Google Test automatic main() definition")
|
"Libraries to link for Google Test automatic main() definition")
|
||||||
else()
|
set(GTEST_MAIN_LIBRARY ${_GTEST_MAIN_LIBRARY} CACHE FILEPATH
|
||||||
set(GTEST_LIBRARIES "optimized;gtest;debug;gtestd" CACHE FILEPATH
|
"Libraries to link for Google Test automatic main() definition")
|
||||||
|
else()
|
||||||
|
set(GTEST_LIBRARIES "optimized;gtest;debug;gtestd" CACHE FILEPATH
|
||||||
"Libraries to link for Google Test framework")
|
"Libraries to link for Google Test framework")
|
||||||
set(GTEST_MAIN_LIBRARIES "optimized;gtest_main;debug;gtest_maind" CACHE FILEPATH
|
set(GTEST_MAIN_LIBRARIES "optimized;gtest_main;debug;gtest_maind" CACHE FILEPATH
|
||||||
"Libraries to link for Google Test automatic main() definition")
|
"Libraries to link for Google Test automatic main() definition")
|
||||||
endif()
|
set(GTEST_MAIN_LIBRARY "optimized;gtest_main;debug;gtest_maind" CACHE FILEPATH
|
||||||
|
"Libraries to link for Google Test automatic main() definition")
|
||||||
|
endif()
|
||||||
|
|
||||||
# Macro required to use google test with vs2012
|
# Macro required to use google test with vs2012
|
||||||
if ( CMAKE_GENERATOR MATCHES "^Visual Studio 11.*" )
|
if ( CMAKE_GENERATOR MATCHES "^Visual Studio 11.*" )
|
||||||
add_definitions(-D_VARIADIC_MAX=10)
|
add_definitions(-D_VARIADIC_MAX=10)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
set(GTEST_LIBRARY ${_GTEST_LIBRARY} CACHE FILEPATH
|
||||||
|
"GTest Libraries")
|
||||||
set(GTEST_LIBRARY_DIR ${_GTEST_LIBRARY_DIR} CACHE FILEPATH
|
set(GTEST_LIBRARY_DIR ${_GTEST_LIBRARY_DIR} CACHE FILEPATH
|
||||||
"Library dir containing Google Test libraries")
|
"Library dir containing Google Test libraries")
|
||||||
mark_as_advanced(GTEST_INCLUDE_DIRS GTEST_LIBRARIES GTEST_MAIN_LIBRARIES GTEST_LIBRARY_DIR )
|
mark_as_advanced(GTEST_INCLUDE_DIRS GTEST_LIBRARIES GTEST_MAIN_LIBRARIES GTEST_LIBRARY_DIR )
|
||||||
|
|||||||
Reference in New Issue
Block a user