From 91c7db45c344bded94cf3b39a144887eb0a35fb8 Mon Sep 17 00:00:00 2001 From: kervala Date: Wed, 6 Jan 2016 12:33:05 +0100 Subject: [PATCH] Fixed: Compilation of object_viewer_qt with Qt 5 --- code/CMakeModules/nel.cmake | 19 ++++++---- .../object_viewer_widget/src/CMakeLists.txt | 36 +++++++++++-------- .../src/object_viewer_widget.cpp | 3 ++ .../3d/object_viewer_widget/src/stdpch.h | 28 ++++++++++++++- 4 files changed, 64 insertions(+), 22 deletions(-) diff --git a/code/CMakeModules/nel.cmake b/code/CMakeModules/nel.cmake index f90c8215c..d54325fcb 100644 --- a/code/CMakeModules/nel.cmake +++ b/code/CMakeModules/nel.cmake @@ -181,13 +181,14 @@ MACRO(NL_SETUP_DEFAULT_OPTIONS) IF(WITH_QT) OPTION(WITH_STUDIO "Build Core Studio" OFF ) ENDIF(WITH_QT) - + ### # Features ### OPTION(WITH_LOGGING "With Logging" ON ) OPTION(WITH_COVERAGE "With Code Coverage Support" OFF) OPTION(WITH_PCH "With Precompiled Headers" ON ) + OPTION(WITH_LOW_MEMORY "With low memory (use the least of RAM)" OFF) OPTION(FINAL_VERSION "Build in Final Version mode" ON ) # Default to static building on Windows. @@ -226,7 +227,7 @@ MACRO(NL_SETUP_DEFAULT_OPTIONS) OPTION(WITH_INSTALL_LIBRARIES "Install development files." ON ) OPTION(WITH_ASSIMP "Use assimp exporter" OFF) - + ### # GUI toolkits ### @@ -295,10 +296,10 @@ MACRO(NL_SETUP_NEL_DEFAULT_OPTIONS) OPTION(WITH_LIBOVR "With LibOVR support" OFF) OPTION(WITH_LIBVR "With LibVR support" OFF) OPTION(WITH_PERFHUD "With NVIDIA PerfHUD support" OFF) - + OPTION(WITH_SSE2 "With SSE2" ON ) OPTION(WITH_SSE3 "With SSE3" ON ) - + IF(NOT MSVC) OPTION(WITH_GCC_FPMATH_BOTH "With GCC -mfpmath=both" OFF) ENDIF(NOT MSVC) @@ -373,7 +374,7 @@ MACRO(NL_SETUP_BUILD) ELSEIF(HOST_CPU MATCHES "i.86") SET(HOST_CPU "x86") ENDIF(HOST_CPU MATCHES "(amd|AMD)64") - + # Determine target CPU # If not specified, use the same CPU as host @@ -808,7 +809,11 @@ MACRO(NL_SETUP_BUILD) ENDIF(HOST_CPU STREQUAL "x86" AND TARGET_CPU STREQUAL "x86_64") ENDIF(APPLE) - ADD_PLATFORM_FLAGS("-D_REENTRANT -pipe -fno-strict-aliasing") + ADD_PLATFORM_FLAGS("-D_REENTRANT -fno-strict-aliasing") + + IF(NOT WITH_LOW_MEMORY) + ADD_PLATFORM_FLAGS("-pipe") + ENDIF() IF(WITH_COVERAGE) ADD_PLATFORM_FLAGS("-fprofile-arcs -ftest-coverage") @@ -1083,7 +1088,7 @@ MACRO(SETUP_EXTERNAL) ENDIF(APPLE) ENDIF(WIN32) - # Android and iOS have pthread + # Android and iOS have pthread IF(ANDROID OR IOS) SET(CMAKE_USE_PTHREADS_INIT 1) SET(Threads_FOUND TRUE) diff --git a/code/nel/tools/3d/object_viewer_widget/src/CMakeLists.txt b/code/nel/tools/3d/object_viewer_widget/src/CMakeLists.txt index 0943f61fa..49fc99f40 100644 --- a/code/nel/tools/3d/object_viewer_widget/src/CMakeLists.txt +++ b/code/nel/tools/3d/object_viewer_widget/src/CMakeLists.txt @@ -2,18 +2,32 @@ INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${LIBXML2_INCLUDE_DIR} - ${NEL_INCLUDE_DIR} - ${QT_INCLUDES}) + ${NEL_INCLUDE_DIR}) -INCLUDE( ${QT_USE_FILE} ) +ADD_DEFINITIONS(${LIBXML2_DEFINITIONS}) FILE(GLOB OBJECT_VIEWER_WIDGET_SRC *.cpp *.h) SET(OBJECT_VIEWER_WIDGET_HDR object_viewer_widget.h) -SET(QT_USE_QTGUI TRUE) -SET(QT_USE_QTOPENGL TRUE) +IF(WITH_QT) + INCLUDE_DIRECTORIES(${QT_INCLUDES}) + INCLUDE(${QT_USE_FILE}) -QT4_WRAP_CPP( OBJECT_VIEWER_WIDGET_MOC_SRCS ${OBJECT_VIEWER_WIDGET_HDR} ) + SET(QT_USE_QTGUI TRUE) + SET(QT_USE_QTOPENGL TRUE) + + QT4_WRAP_CPP(OBJECT_VIEWER_WIDGET_MOC_SRCS ${OBJECT_VIEWER_WIDGET_HDR}) + + ADD_DEFINITIONS(${QT_DEFINITIONS}) + ADD_DEFINITIONS(-DQT_NO_KEYWORDS) + ADD_DEFINITIONS(-DQT_PLUGIN) + ADD_DEFINITIONS(-DQT_SHARED) + #ADD_DEFINITIONS(-DQT_NO_DEBUG) + + SET(QT_LIBRARIES ${QT_LIBRARIES} ${QT_QTOPENGL_LIBRARY}) +ELSE() + QT5_WRAP_CPP(OBJECT_VIEWER_WIDGET_MOC_SRCS ${OBJECT_VIEWER_WIDGET_HDR}) +ENDIF() SOURCE_GROUP(QtGeneratedMocSrc FILES ${OBJECT_VIEWER_WIDGET_MOC_SRCS}) @@ -24,19 +38,13 @@ ADD_LIBRARY(object_viewer_widget_qt MODULE TARGET_LINK_LIBRARIES(object_viewer_widget_qt nelmisc nel3d - ${QT_LIBRARIES} - ${QT_QTOPENGL_LIBRARY}) - -ADD_DEFINITIONS(-DQT_NO_KEYWORDS ${LIBXML2_DEFINITIONS} ${QT_DEFINITIONS}) -ADD_DEFINITIONS(-DQT_PLUGIN) -ADD_DEFINITIONS(-DQT_SHARED) -#ADD_DEFINITIONS(-DQT_NO_DEBUG) + ${QT_LIBRARIES}) NL_DEFAULT_PROPS(object_viewer_widget_qt "NeL, Tools, 3D: Object Viewer Qt Widget") NL_ADD_RUNTIME_FLAGS(object_viewer_widget_qt) IF(WITH_PCH) ADD_NATIVE_PRECOMPILED_HEADER(object_viewer_widget_qt ${CMAKE_CURRENT_SOURCE_DIR}/stdpch.h ${CMAKE_CURRENT_SOURCE_DIR}/stdpch.cpp) -ENDIF(WITH_PCH) +ENDIF() #INSTALL(TARGETS object_viewer_widget_qt RUNTIME DESTINATION ${NL_BIN_PREFIX} COMPONENT runtime BUNDLE DESTINATION /Applications) diff --git a/code/nel/tools/3d/object_viewer_widget/src/object_viewer_widget.cpp b/code/nel/tools/3d/object_viewer_widget/src/object_viewer_widget.cpp index 4d0936a1a..83dec01e1 100644 --- a/code/nel/tools/3d/object_viewer_widget/src/object_viewer_widget.cpp +++ b/code/nel/tools/3d/object_viewer_widget/src/object_viewer_widget.cpp @@ -16,6 +16,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ +#include "stdpch.h" #include "object_viewer_widget.h" // STL includes @@ -46,7 +47,9 @@ along with this program. If not, see . // Project includes +#ifndef USE_QT5 Q_EXPORT_PLUGIN2(object_viewer_widget_qt, NLQT::CObjectViewerWidget) +#endif using namespace NLMISC; using namespace NL3D; diff --git a/code/nel/tools/3d/object_viewer_widget/src/stdpch.h b/code/nel/tools/3d/object_viewer_widget/src/stdpch.h index 48bf018dc..34aaaa7d0 100644 --- a/code/nel/tools/3d/object_viewer_widget/src/stdpch.h +++ b/code/nel/tools/3d/object_viewer_widget/src/stdpch.h @@ -20,7 +20,32 @@ along with this program. If not, see . #ifndef NL_STDPCH_H #define NL_STDPCH_H -#include +#if defined(_MSC_VER) && defined(_DEBUG) + #define _CRTDBG_MAP_ALLOC + #include + #include + #define DEBUG_NEW new(_NORMAL_BLOCK, __FILE__, __LINE__) + #undef realloc + #undef free +#endif + +#include + +#ifdef Q_COMPILER_RVALUE_REFS +#undef Q_COMPILER_RVALUE_REFS +#endif + +#include +#include + +#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#define USE_QT5 +#endif + +#ifdef USE_QT5 +#include +#include +#endif #include #include @@ -28,6 +53,7 @@ along with this program. If not, see . #include #include +#include #include #endif