Skip to content
This repository was archived by the owner on Mar 29, 2024. It is now read-only.

Commit

Permalink
- set Qt includes and compile definitions only to relevant CMake targ…
Browse files Browse the repository at this point in the history
…ets by explicitely calling the new QTX_SET_INCLUDES_AND_DEFINITIONS CMake macro (enables not to recompile the whole Tulip codebase when switching between Qt4 and Qt5)

- Warning: that change will break build of external CMake projects that uses the FindQtX module, the new QTX_SET_INCLUDES_AND_DEFINITIONS macro must now be explicitely called in relevant CMakeLists.txt files

git-svn-id: https://svn.code.sf.net/p/auber/code/tulip@12616 f5d4c5f9-c943-4916-8a57-bd8605bf961c
  • Loading branch information
anlambert committed Jul 31, 2017
1 parent 5a650f1 commit 27ff443
Show file tree
Hide file tree
Showing 16 changed files with 57 additions and 22 deletions.
40 changes: 25 additions & 15 deletions cmake/FindQtX.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -108,13 +108,7 @@ IF(${Qt5Widgets_FOUND} AND ${Qt5OpenGL_FOUND} AND ${Qt5Network_FOUND})
SET(QT_BINARY_DIR ${QT_FRAMEWORKS_DIR}/../bin)
ENDIF()

INCLUDE_DIRECTORIES(${Qt5Widgets_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${Qt5OpenGL_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${Qt5Network_INCLUDE_DIRS})

ADD_DEFINITIONS(${Qt5Widgets_DEFINITIONS})
ADD_DEFINITIONS(${Qt5OpenGL_DEFINITIONS})
ADD_DEFINITIONS(${Qt5Network_DEFINITIONS})

SET(QT_LIBRARIES ${Qt5Widgets_LIBRARIES} ${Qt5OpenGL_LIBRARIES} ${Qt5Network_LIBRARIES})

Expand Down Expand Up @@ -150,10 +144,6 @@ IF(${Qt5Widgets_FOUND} AND ${Qt5OpenGL_FOUND} AND ${Qt5Network_FOUND})
GET_TARGET_PROPERTY(Qt5WebKit_LIBRARIES Qt5::WebKit LOCATION)
GET_TARGET_PROPERTY(Qt5WebKitWidgets_LIBRARIES Qt5::WebKitWidgets LOCATION)
ENDIF(NOT Qt5WebKit_INCLUDE_DIRS)
INCLUDE_DIRECTORIES(${Qt5WebKit_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${Qt5WebKitWidgets_INCLUDE_DIRS})
ADD_DEFINITIONS(${Qt5WebKit_DEFINITIONS})
ADD_DEFINITIONS(${Qt5WebKitWidgets_DEFINITIONS})
SET(QT_LIBRARIES ${QT_LIBRARIES} ${Qt5WebKit_LIBRARIES} ${Qt5WebKitWidgets_LIBRARIES})
ENDIF(${Qt5WebKit_FOUND} AND ${Qt5WebKitWidgets_FOUND})
ENDIF(EXISTS ${QT_WEBKIT_WIDGETS_CMAKE_DIR})
Expand All @@ -167,14 +157,31 @@ IF(${Qt5Widgets_FOUND} AND ${Qt5OpenGL_FOUND} AND ${Qt5Network_FOUND})
FIND_PACKAGE(Qt5WebChannel)
IF(${Qt5WebEngineWidgets_FOUND} AND ${Qt5WebChannel_FOUND})
SET(QT_HAS_WEBENGINE TRUE)
INCLUDE_DIRECTORIES(${Qt5WebEngineWidgets_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${Qt5WebChannel_INCLUDE_DIRS})
ADD_DEFINITIONS(${Qt5WebEngineWidgets_DEFINITIONS})
ADD_DEFINITIONS(${Qt5WebChannel_DEFINITIONS})
SET(QT_LIBRARIES ${QT_LIBRARIES} ${Qt5WebEngineWidgets_LIBRARIES} ${Qt5WebChannel_LIBRARIES})
ENDIF(${Qt5WebEngineWidgets_FOUND} AND ${Qt5WebChannel_FOUND})
ENDIF(NOT QT_HAS_WEBKIT AND EXISTS ${QT_WEBENGINE_WIDGETS_CMAKE_DIR})

MACRO(QTX_SET_INCLUDES_AND_DEFINITIONS)
INCLUDE_DIRECTORIES(${Qt5Widgets_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${Qt5OpenGL_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${Qt5Network_INCLUDE_DIRS})
ADD_DEFINITIONS(${Qt5Widgets_DEFINITIONS})
ADD_DEFINITIONS(${Qt5OpenGL_DEFINITIONS})
ADD_DEFINITIONS(${Qt5Network_DEFINITIONS})
IF(QT_HAS_WEBKIT)
INCLUDE_DIRECTORIES(${Qt5WebKit_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${Qt5WebKitWidgets_INCLUDE_DIRS})
ADD_DEFINITIONS(${Qt5WebKit_DEFINITIONS})
ADD_DEFINITIONS(${Qt5WebKitWidgets_DEFINITIONS})
ENDIF()
IF(QT_HAS_WEBENGINE)
INCLUDE_DIRECTORIES(${Qt5WebEngineWidgets_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${Qt5WebChannel_INCLUDE_DIRS})
ADD_DEFINITIONS(${Qt5WebEngineWidgets_DEFINITIONS})
ADD_DEFINITIONS(${Qt5WebChannel_DEFINITIONS})
ENDIF()
ENDMACRO()

# define aliases for Qt macros in order to build the project
MACRO(QTX_WRAP_CPP outfiles)
QT5_WRAP_CPP(${outfiles} ${ARGN})
Expand Down Expand Up @@ -210,14 +217,17 @@ ELSE(${Qt5Widgets_FOUND} AND ${Qt5OpenGL_FOUND} AND ${Qt5Network_FOUND})
SET(QT_USE_QTWEBKIT true)
SET(QT_USE_QTTEST false)
SET(QT_USE_QTDBUS false)
INCLUDE(${QT_USE_FILE})

IF(QT_QTWEBKIT_LIBRARY)
SET(QT_HAS_WEBKIT TRUE)
ENDIF(QT_QTWEBKIT_LIBRARY)

SET(QT_VERSION "${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}")

MACRO(QTX_SET_INCLUDES_AND_DEFINITIONS)
INCLUDE(${QT_USE_FILE})
ENDMACRO()

# define aliases for Qt macros
MACRO(QTX_WRAP_CPP outfiles)
QT4_WRAP_CPP(${outfiles} ${ARGN})
Expand Down
2 changes: 2 additions & 0 deletions library/tulip-gui/src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,8 @@ SET(SRCS
TulipFontIconDialog.cpp
)

QTX_SET_INCLUDES_AND_DEFINITIONS()

ADD_DEFINITIONS(-DQT_DLL)
ADD_DEFINITIONS(-DQT_THREAD_SUPPORT)

Expand Down
2 changes: 2 additions & 0 deletions library/tulip-python/bindings/tulip-gui/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@ ENDIF(TULIP_ACTIVATE_PYTHON_WHEELS_TARGETS)
INCLUDE_DIRECTORIES(BEFORE ${SIP_INCLUDE_DIR} ${TulipCoreBuildInclude} ${TulipGUIBuildInclude})
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${PYTHON_INCLUDE_DIR} ${PYTHON_INCLUDE_PATH} ${OPENGL_INCLUDE_DIR} ${QT_INCLUDE_DIR} ${QT_INCLUDE_DIR}/QtOpenGL ${TulipCoreInclude} ${TulipOGLInclude} ${TulipGUIInclude})

QTX_SET_INCLUDES_AND_DEFINITIONS()

ADD_LIBRARY(${LibTulipGUIPythonBindingsName} SHARED ${TULIP_GUI_PYTHON_BINDINGS_SRC})

SET_TARGET_PROPERTIES(${LibTulipGUIPythonBindingsName} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${TULIPGUI_PYTHON_NATIVE_FOLDER})
Expand Down
2 changes: 2 additions & 0 deletions library/tulip-python/src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_DIR} ${PYTHON_INCLUDE_PATH} ${OPENGL_INCLUD
INCLUDE_DIRECTORIES(BEFORE ${TulipCoreBuildInclude})
INCLUDE_DIRECTORIES(${TulipCoreInclude} ${TulipOGLInclude} ${TulipGUIInclude} ${TulipPythonInclude} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})

QTX_SET_INCLUDES_AND_DEFINITIONS()

SET(${LibTulipPythonName}_LIB_SRCS
ConsoleUtilsModule.cpp
PythonCodeEditor.cpp
Expand Down
2 changes: 2 additions & 0 deletions plugins/clustering/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ TARGET_LINK_LIBRARIES(CliqueEnumeration-${TulipVersion} ${LibTulipCoreName})

##----------------------------------------------------------------------------------------------------------------------------
IF(NOT TULIP_BUILD_CORE_ONLY)
QTX_SET_INCLUDES_AND_DEFINITIONS()

QTX_WRAP_UI(ConvolutionClustering_UI_SRCS
ConvolutionClusteringSetup.ui)

Expand Down
2 changes: 2 additions & 0 deletions plugins/colors/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ INCLUDE_DIRECTORIES(${TulipCoreBuildInclude} ${TulipCoreInclude} ${TulipOGLInclu

IF(NOT TULIP_BUILD_CORE_ONLY)

QTX_SET_INCLUDES_AND_DEFINITIONS()

SET(ColorMapping_SRCS
ColorMapping.cpp
DoubleStringsListRelationDialog.cpp
Expand Down
1 change: 1 addition & 0 deletions plugins/export/SVGExport/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
QTX_SET_INCLUDES_AND_DEFINITIONS()
INCLUDE_DIRECTORIES(${TulipCoreBuildInclude} ${TulipCoreInclude} ${TulipOGLInclude} ${TulipGUIInclude} ${CMAKE_CURRENT_SOURCE_DIR})
FILE(GLOB LIB_SRCS "*.cpp")

Expand Down
1 change: 1 addition & 0 deletions plugins/import/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ TARGET_LINK_LIBRARIES(EmptyGraph-${TulipVersion} ${LibTulipCoreName})

##----------------------------------------------------------------------------------------------------------------------------
IF(NOT TULIP_BUILD_CORE_ONLY)
QTX_SET_INCLUDES_AND_DEFINITIONS()
SET(FileSystem_SRCS FileSystem.cpp)
ADD_LIBRARY(FileSystem-${TulipVersion} SHARED ${FileSystem_SRCS})
TARGET_LINK_LIBRARIES(FileSystem-${TulipVersion} ${LibTulipCoreName} ${QT_LIBRARIES})
Expand Down
1 change: 1 addition & 0 deletions plugins/interactor/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
QTX_SET_INCLUDES_AND_DEFINITIONS()
ADD_SUBDIRECTORY(FishEye)
ADD_SUBDIRECTORY(MouseMagnifyingGlass)
ADD_SUBDIRECTORY(MouseLassoNodesSelector)
Expand Down
1 change: 1 addition & 0 deletions plugins/perspective/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
QTX_SET_INCLUDES_AND_DEFINITIONS()
ADD_SUBDIRECTORY(GraphPerspective)
1 change: 1 addition & 0 deletions plugins/view/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
QTX_SET_INCLUDES_AND_DEFINITIONS()
ADD_SUBDIRECTORY(HistogramView)
IF(QT_HAS_WEBKIT OR QT_HAS_WEBENGINE)
ADD_SUBDIRECTORY(GeographicView)
Expand Down
2 changes: 2 additions & 0 deletions software/plugin_server/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
INCLUDE_DIRECTORIES(${TulipCoreBuildInclude} ${TulipCoreInclude} ${TulipGUIInclude} ${TulipOGLInclude} ${QuazipInclude})

QTX_SET_INCLUDES_AND_DEFINITIONS()

IF(USE_QT5)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")
ENDIF(USE_QT5)
Expand Down
2 changes: 2 additions & 0 deletions software/tulip/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ SET(SRCS
src/PerspectiveSelectionDialog.cpp
)

QTX_SET_INCLUDES_AND_DEFINITIONS()

QTX_WRAP_UI(UI_HEADERS
designer/PerspectiveItem.ui
designer/PluginErrorReport.ui
Expand Down
2 changes: 2 additions & 0 deletions software/tulip_perspective/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ SET(SRCS
src/TulipPerspectiveMainWindow.cpp
)

QTX_SET_INCLUDES_AND_DEFINITIONS()

QTX_WRAP_CPP(MOC_SRCS
include/TulipPerspectiveMainWindow.h
)
Expand Down
4 changes: 3 additions & 1 deletion thirdparty/QtAwesome/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
IF(NOT MSVC)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
ENDIF(NOT MSVC)

SET(SRCS
Expand All @@ -10,4 +10,6 @@ QTX_WRAP_CPP(MOC_SRCS
QtAwesome.h
)

QTX_SET_INCLUDES_AND_DEFINITIONS()

ADD_LIBRARY(${QtAwesomeLibrary} STATIC ${SRCS} ${MOC_SRCS})
14 changes: 8 additions & 6 deletions thirdparty/quazip/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,23 +1,25 @@
file(GLOB SRCS "*.c" "*.cpp")
FILE(GLOB SRCS "*.c" "*.cpp")

# Must be added to enable export macro
ADD_DEFINITIONS(-DQUAZIP_BUILD)

INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR})

QTX_SET_INCLUDES_AND_DEFINITIONS()

QTX_WRAP_CPP(MOC_SRCS quazipfile.h quaziodevice.h quagzipfile.h)
set(SRCS ${SRCS} ${MOC_SRCS})
SET(SRCS ${SRCS} ${MOC_SRCS})

add_library(${QuazipLibrary} SHARED ${SRCS})
set_target_properties(${QuazipLibrary} PROPERTIES VERSION 1.0.0 SOVERSION 1)
ADD_LIBRARY(${QuazipLibrary} SHARED ${SRCS})
SET_TARGET_PROPERTIES(${QuazipLibrary} PROPERTIES VERSION 1.0.0 SOVERSION 1)
# Link against ZLIB_LIBRARIES if needed (on Windows this variable is empty)
target_link_libraries(${QuazipLibrary} ${QT_LIBRARIES} ${ZLIB_LIBRARIES})
TARGET_LINK_LIBRARIES(${QuazipLibrary} ${QT_LIBRARIES} ${ZLIB_LIBRARIES})

INSTALL(TARGETS ${QuazipLibrary}
RUNTIME DESTINATION ${TulipBinInstallDir} COMPONENT quazip
LIBRARY DESTINATION ${TulipLibInstallDir} COMPONENT quazip
ARCHIVE DESTINATION ${TulipLibInstallDir} COMPONENT quazip)

IF(TULIP_ACTIVATE_PYTHON_WHEELS_TARGETS)
COPY_TARGET_LIBRARY_POST_BUILD(${QuazipLibrary} ${TULIPGUI_PYTHON_NATIVE_FOLDER} wheels)
COPY_TARGET_LIBRARY_POST_BUILD(${QuazipLibrary} ${TULIPGUI_PYTHON_NATIVE_FOLDER} wheels)
ENDIF(TULIP_ACTIVATE_PYTHON_WHEELS_TARGETS)

0 comments on commit 27ff443

Please sign in to comment.