Skip to content
Snippets Groups Projects
Commit f324d9a2 authored by Mohcine Chraibi's avatar Mohcine Chraibi
Browse files

changes in jpsvis as in jpsedit

-FIXME: Code does NOT compile with Qt5. Some widget-issues
parent 99eac70b
Branches
Tags
No related merge requests found
......@@ -3,6 +3,8 @@
# -DCMAKE_BUILD_TYPE:STRING=Debug (default Release)
# -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON (default OFF)
# -DBUILD_TESTING=ON (default OFF)
# MARK_AS_ADVANCED (BUILD_TESTING CMAKE_BUILD_TYPE=Debug)
#--------------------------------------------------------------------------
......@@ -58,11 +60,16 @@ message( STATUS "JPSVIS_VERSION: " ${JPSVIS_VERSION} )
INCLUDE_DIRECTORIES( ${CMAKE_BINARY_DIR} )
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(README_FILE "${CMAKE_SOURCE_DIR}/README.md")
if(APPLE AND CMAKE_INSTALL_PREFIX MATCHES "/usr/local")
set(CMAKE_INSTALL_PREFIX "/Applications")
endif()
message(STATUS "${PROJECT_NAME} will be installed to ${CMAKE_INSTALL_PREFIX}")
# these files compile need Cocoa (evtl. Mac specific)
SET(MAC_FIX_SRC src/fix/osx_thread_fix.mm) #.mm
SET(MAC_FIX_HDR src/fix/osx_thread_fix.h) #.h
set( SAMPLE_SRCS
set( SRCS
# src/fix/osx_thread_fix.mm
src/geometry/Building.cpp
src/geometry/Crossing.cpp
......@@ -109,7 +116,7 @@ set( SAMPLE_SRCS
forms/jpsvis.rc
)
# all header files that should be treated with moc
set( SAMPLE_HDR
set( HDR
# src/fix/osx_thread_fix.h
src/geometry/Building.h
src/geometry/Crossing.h
......@@ -155,23 +162,24 @@ set( SAMPLE_HDR
src/TrailPlotter.h
)
IF(APPLE)
SET(SAMPLE_SRCS ${SAMPLE_SRCS} ${MAC_FIX_SRC})
SET(SAMPLE_HDR ${SAMPLE_HDR} ${MAC_FIX_HDR})
SET(SRCS ${SRCS} ${MAC_FIX_SRC})
SET(HDR ${HDR} ${MAC_FIX_HDR})
ENDIF(APPLE)
# *.ui files
set( SAMPLE_UIS
set( UIS
forms/settings.ui
forms/mainwindow.ui
)
# and finally a resource file
set( SAMPLE_RCS
set( RCS
forms/icons.qrc
)
#set(VTK_USE_HYBRID ON CACHE BOOL "doc" FORCE)
find_package(VTK REQUIRED)
......@@ -199,68 +207,172 @@ IF (WIN32)
ENDIF (WIN32)
#--------------- here comes QT. Version problem (4 or 5?)
#FIND_PACKAGE( Qt4 REQUIRED )
#FIND_PACKAGE(QT REQUIRED)
FIND_PROGRAM(QT_QMAKE_EXECUTABLE NAMES qmake REQUIRED)
FIND_PACKAGE(Qt COMPONENTS QtXml QT_USE_QTNETWORK QtXmlPatterns REQUIRED)
# cmake does not provide findqt5-modules
#=================================================== Qt4
# FIND_PROGRAM(QT_QMAKE_EXECUTABLE NAMES qmake REQUIRED)
# FIND_PACKAGE(Qt COMPONENTS QtXml QT_USE_QTNETWORK QtXmlPatterns REQUIRED)
# if("${DESIRED_QT_VERSION}" STREQUAL "")
# set(DESIRED_QT_VERSION "4")
# endif()
# if( ${DESIRED_QT_VERSION} VERSION_GREATER "4" OR ${DESIRED_QT_VERSION} VERSION_LESS "3")
# message(WARNING "QT version: " ${DESIRED_QT_VERSION} " not supported")
# endif()
# message(STATUS "DESIRED_QT_VERSION " ${DESIRED_QT_VERSION})
# message(STATUS "QT5_INSTALLED: " ${QT5_INSTALLED})
# message(STATUS "QT4_INSTALLED: " ${QT4_INSTALLED})
# message(STATUS "QT3_INSTALLED: " ${QT3_INSTALLED})
# # by default only QtCore and QtGui modules are enabled
# # other modules must be enabled like this:
# set(QT_USE_QTXML TRUE) # needed!
# set(QT_USE_QTNETWORK TRUE)
# # this command will generate rules that will run rcc on all files from SAMPLE_RCS
# # in result SAMPLE_RC_SRCS variable will contain paths to files produced by rcc
# if( ${QT4_INSTALLED} )
# message(STATUS "Working with Qt4")
# QT4_ADD_RESOURCES( SAMPLE_RC_SRCS ${SAMPLE_RCS} )
# # and finally this will run moc:
# QT4_WRAP_CPP( SAMPLE_MOC_HDRS ${SAMPLE_MOC_HDRS} )
# # this will run uic on .ui files:
# QT4_WRAP_UI( SAMPLE_UI_HDRS ${SAMPLE_UIS} )
# # QT4_ADD_RESOURCES(SAMPLE_RESOURCES_RCS ${SAMPLE_RCS})
# # add some useful macros and variables
# # (QT_USE_FILE is a variable defined by FIND_PACKAGE( Qt4 ) that contains a path to CMake script)
# include( ${QT_USE_FILE} )
# elseif( ${QT5_INSTALLED} )
# message(STATUS "Working with Qt5")
# find_package(Qt5Widgets REQUIRED)
# qt5_wrap_ui(SAMPLE_UI_HDRS ${SAMPLE_UIS})
# endif()
#==================================================== QT4
message(STATUS "QT_Qmake_executable " ${QT_QMAKE_EXECUTABLE})
if($QT_QMAKE_EXECUTABLE STREQUAL "")
FIND_PROGRAM(QT_QMAKE_EXECUTABLE NAMES qmake)
if (NOT QT_QMAKE_EXECUTABL)
message(WARNING "QT not found - abort.")
endif()
endif()
# default qt version is 4
if("${DESIRED_QT_VERSION}" STREQUAL "")
set(DESIRED_QT_VERSION "4")
endif()
if( ${DESIRED_QT_VERSION} VERSION_GREATER "4" OR ${DESIRED_QT_VERSION} VERSION_LESS "3")
message(WARNING "QT version: " ${DESIRED_QT_VERSION} " not supported")
# qt version > 5 or qt version < 3 are not supported
if( ${DESIRED_QT_VERSION} VERSION_GREATER 5 OR ${DESIRED_QT_VERSION} VERSION_LESS 3)
message(FATAL_ERROR "QT version " ${DESIRED_QT_VERSION} " not supported. Try 4 or 5")
endif()
message(STATUS "DESIRED_QT_VERSION " ${DESIRED_QT_VERSION})
message(STATUS "QT5_INSTALLED: " ${QT3_INSTALLED})
message(STATUS "QT4_INSTALLED: " ${QT4_INSTALLED})
message(STATUS "QT3_INSTALLED: " ${QT3_INSTALLED})
# find packages according to qt version
if("${DESIRED_QT_VERSION}" STREQUAL "5")
find_package(Qt5Widgets REQUIRED)
# - these find_packages are not necessary? -----------
FIND_PACKAGE(Qt5Core REQUIRED)
FIND_PACKAGE(Qt5Gui REQUIRED)
FIND_PACKAGE(Qt5Network REQUIRED)
FIND_PACKAGE(Qt5Xml REQUIRED)
#-----------------------------------------------------
set(QT5_INSTALLED TRUE)
# # by default only QtCore and QtGui modules are enabled
# # other modules must be enabled like this:
set(QT_USE_QTXML TRUE) # needed!
set(QT_USE_QTNETWORK TRUE)
# by default only QtCore and QtGui modules are enabled
# other modules must be enabled like this:
MESSAGE(STATUS "Found Qt version: ${Qt5Core_VERSION_STRING}")
elseif("${DESIRED_QT_VERSION}" STREQUAL "4")
# QT4_INSTALLED is set to TRUE if qt4 is found and
# QT3_INSTALLED is set to TRUE if qt3 is found.
FIND_PACKAGE(Qt COMPONENTS QtXml QT_USE_QTNETWORK QtXmlPatterns REQUIRED)
set(QT_USE_QTXML TRUE) # needed!
set(QT_USE_QTNETWORK TRUE)
# this command will generate rules that will run rcc on all files from SAMPLE_RCS
# in result SAMPLE_RC_SRCS variable will contain paths to files produced by rcc
endif()
message(STATUS "DESIRED_QT_VERSION " ${DESIRED_QT_VERSION})
if(QT5_INSTALLED)
message(STATUS "QT5_INSTALLED: " ${QT5_INSTALLED})
elseif(QT4_INSTALLED )
message(STATUS "QT4_INSTALLED: " ${QT4_INSTALLED})
elseif(QT3_INSTALLED)
message(STATUS "QT3_INSTALLED: " ${QT3_INSTALLED})
else()
message(SEND_ERROR "No supported Qt found.")
endif()
# Disable automatic conversion from QString to ASCII 8-bit strings (char *)
# (Keeps code compatible with Qt/Mac/64bit)
if(APPLE)
ADD_DEFINITIONS(-DQT_NO_CAST_TO_ASCII)
# include the icns file in the target
SET(SRCS ${SRCS} ${CMAKE_CURRENT_SOURCE_DIR}/forms/icons/JPSvis.icns)
endif()
# this command will generate rules that will run rcc on all files from RCS
# in result RC_SRCS variable will contain paths to files produced by rcc
if(${QT4_INSTALLED})
message(STATUS "Working with Qt4")
QT4_ADD_RESOURCES( SAMPLE_RC_SRCS ${SAMPLE_RCS} )
# and finally this will run moc:
QT4_WRAP_CPP( SAMPLE_MOC_HDRS ${SAMPLE_MOC_HDRS} )
QT4_WRAP_CPP( MOC_HDRS ${MOC_HDRS} )
# this will run uic on .ui files:
QT4_WRAP_UI( SAMPLE_UI_HDRS ${SAMPLE_UIS} )
QT4_ADD_RESOURCES(SAMPLE_RESOURCES_RCS ${SAMPLE_RCS})
# add some useful macros and variables
# (QT_USE_FILE is a variable defined by FIND_PACKAGE( Qt4 ) that contains a path to CMake script)
QT4_WRAP_UI( UI_HDRS ${UIS} )
QT4_ADD_RESOURCES( RCS ${RCS} )
include( ${QT_USE_FILE} )
ADD_EXECUTABLE( JPSvis MACOSX_BUNDLE WIN32
${SRCS}
${MOC_HDRS}
${UI_HDRS}
${RCS}
)
TARGET_LINK_LIBRARIES( JPSvis ${QT_LIBRARIES})
elseif( ${QT5_INSTALLED})
message(STATUS "Working with Qt5")
find_package(Qt5Widgets REQUIRED)
qt5_wrap_ui(SAMPLE_UI_HDRS ${SAMPLE_UIS})
# http://www.kdab.com/using-cmake-with-qt-5/
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}" )
qt5_wrap_ui( UI_HDRS ${UIS} )
qt5_add_resources( RCS ${RCS} )
ADD_EXECUTABLE( JPSvis MACOSX_BUNDLE WIN32
${SRCS}
${MOC_HDRS}
${UI_HDRS}
${RCS}
)
qt5_use_modules(JPSvis Widgets)
target_link_libraries(JPSvis ${Qt5Widgets_LIBRARIES})
else()
message(FATAL_ERROR "QT NOT FOUND - ABORT")
endif()
#======================================================================
# debug where is python?
# foreach(REQUIRED_PYTHON_VERSION 2.7 2.6 2.5)
# message(STATUS "======== LOOKING FOR ${REQUIRED_PYTHON_VERSION} ========================")
foreach(REQUIRED_PYTHON_VERSION 2.7) # 2.6 2.5)
message(STATUS "======== LOOKING FOR ${REQUIRED_PYTHON_VERSION} ========================")
# find_package ( PythonInterp ${REQUIRED_PYTHON_VERSION} REQUIRED)
# find_package ( PythonLibs ${PYTHON_VERSION_STRING} EXACT)
# #find_package ( PythonLibs ${PYTHON_VERSION_STRING} EXACT REQUIRED )
# find_package ( PythonLibs ${PYTHON_VERSION_STRING} EXACT REQUIRED )
# message(STATUS "PYTHON_EXECUTABLE:FILEPATH=${PYTHON_EXECUTABLE}")
# message(STATUS "PYTHON_LIBRARY:FILEPATH=${PYTHON_LIBRARY}")
# message(STATUS "PYTHON_INCLUDE_DIR:FILEPATH=${PYTHON_INCLUDE_DIR}")
# message(STATUS "PYTHON_FRAMEWORK_INCLUDES=${PYTHON_FRAMEWORK_INCLUDES}")
# message(STATUS "PYTHONLIBS_VERSION_STRING=${PYTHONLIBS_VERSION_STRING}")
# message(STATUS "Python_FRAMEWORKS=${Python_FRAMEWORKS}")
message(STATUS "PYTHON_EXECUTABLE:FILEPATH=${PYTHON_EXECUTABLE}")
message(STATUS "PYTHON_LIBRARY:FILEPATH=${PYTHON_LIBRARY}")
message(STATUS "PYTHON_INCLUDE_DIR:FILEPATH=${PYTHON_INCLUDE_DIR}")
message(STATUS "PYTHON_FRAMEWORK_INCLUDES=${PYTHON_FRAMEWORK_INCLUDES}")
message(STATUS "PYTHONLIBS_VERSION_STRING=${PYTHONLIBS_VERSION_STRING}")
message(STATUS "Python_FRAMEWORKS=${Python_FRAMEWORKS}")
# unset(PYTHON_EXECUTABLE CACHE)
# unset(PYTHON_LIBRARY CACHE)
# unset(PYTHON_INCLUDE_DIR CACHE)
# endforeach()
endforeach()
# For Apple set the icns file containing icons
......@@ -271,25 +383,11 @@ IF(APPLE)
# set where in the bundle to put the icns file
SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_SOURCE_DIR}/forms/icons/JPSvis.icns PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
# include the icns file in the target
SET(SAMPLE_SRCS ${SAMPLE_SRCS} ${CMAKE_CURRENT_SOURCE_DIR}/forms/icons/JPSvis.icns)
SET(SRCS ${SRCS} ${CMAKE_CURRENT_SOURCE_DIR}/forms/icons/JPSvis.icns)
ENDIF(APPLE)
# here we instruct CMake to build JPSvis executable from all of the source files
ADD_EXECUTABLE( JPSvis MACOSX_BUNDLE WIN32
${SAMPLE_SRCS}
${SAMPLE_MOC_HDRS}
${SAMPLE_UI_HDRS}
${SAMPLE_RESOURCES_RCS}
# ${CMAKE_CURRENT_SOURCE_DIR}/forms/icons/JPSvis.png
# JPSvis.icns
)
SET_TARGET_PROPERTIES(JPSvis PROPERTIES LINKER_LANGUAGE CXX)
set_property(TARGET JPSvis PROPERTY CXX_STANDARD 11)
# SET_TARGET_PROPERTIES(JPSvis PROPERTIES LINKER_LANGUAGE CXX)
# set_property(TARGET JPSvis PROPERTY CXX_STANDARD 11)
# last thing we have to do is to tell CMake what libraries our executable needs,
# luckily FIND_PACKAGE prepared QT_LIBRARIES variable for us:
......@@ -450,3 +548,25 @@ set(CPACK_PACKAGE_INSTALL_DIRECTORY "CPack Component Example")
include(CPack)
message (STATUS "bin install dir" ${BIN_INSTALL_DIR})
set(CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION "${BIN_INSTALL_DIR}")
include(InstallRequiredSystemLibraries)
if(APPLE)
set(EXECUTABLE "${PROJECT_NAME}.app")
elseif(WIN32)
set(EXECUTABLE "${PROJECT_NAME}${CMAKE_EXECUTABLE_SUFFIX}")
else()
set(EXECUTABLE "${BIN_INSTALL_DIR}/${PROJECT_NAME}${CMAKE_EXECUTABLE_SUFFIX}")
endif()
if(APPLE OR WIN32)
if(${QT4_INSTALLED})
include(DeployQt4)
install_qt4_executable("${EXECUTABLE}" "qsqlite")
elseif(${QT4_INSTALLED})
include(DeployQt5)
install_qt5_executable("${EXECUTABLE}" "qsqlite")
endif()
endif()
......@@ -146,7 +146,7 @@
<property name="title">
<string>Color</string>
</property>
<widget class="QWidget" name="layoutWidget">
<widget class="QWidget" name="layoutWidget2">
<property name="geometry">
<rect>
<x>10</x>
......@@ -216,7 +216,7 @@
<attribute name="title">
<string>Trails/Captions</string>
</attribute>
<widget class="QWidget" name="layoutWidget">
<widget class="QWidget" name="layoutWidget3">
<property name="geometry">
<rect>
<x>70</x>
......@@ -645,7 +645,7 @@
<attribute name="title">
<string>Locations</string>
</attribute>
<widget class="QWidget" name="layoutWidget">
<widget class="QWidget" name="layoutWidget5">
<property name="geometry">
<rect>
<x>20</x>
......
MAc
brew update
# brew uninstall vtk
brew install vtk --with-qt --without-python --without-boost --build-from-source
Debian 7.7
sudo apt-get install libmgl-qt5
sudo apt-get install libvtk5-dev
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment