Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
JPSvis
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
JuPedSim
JPSvis
Commits
f324d9a2
Commit
f324d9a2
authored
9 years ago
by
Mohcine Chraibi
Browse files
Options
Downloads
Patches
Plain Diff
changes in jpsvis as in jpsedit
-FIXME: Code does NOT compile with Qt5. Some widget-issues
parent
99eac70b
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
CMakeLists.txt
+190
-70
190 additions, 70 deletions
CMakeLists.txt
forms/settings.ui
+3
-3
3 additions, 3 deletions
forms/settings.ui
install_packages_debian.txt
+5
-0
5 additions, 0 deletions
install_packages_debian.txt
with
198 additions
and
73 deletions
CMakeLists.txt
+
190
−
70
View file @
f324d9a2
...
...
@@ -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
(
S
AMPLE_SRCS
${
SAMPLE_
SRCS
}
${
MAC_FIX_SRC
}
)
SET
(
SAMPLE_HDR
${
SAMPLE_
HDR
}
${
MAC_FIX_HDR
}
)
SET
(
S
RCS
${
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
(
S
AMPLE_SRCS
${
SAMPLE_
SRCS
}
${
CMAKE_CURRENT_SOURCE_DIR
}
/forms/icons/JPSvis.icns
)
SET
(
S
RCS
${
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
()
This diff is collapsed.
Click to expand it.
forms/settings.ui
+
3
−
3
View file @
f324d9a2
...
...
@@ -146,7 +146,7 @@
<property
name=
"title"
>
<string>
Color
</string>
</property>
<widget
class=
"QWidget"
name=
"layoutWidget"
>
<widget
class=
"QWidget"
name=
"layoutWidget
2
"
>
<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=
"layoutWidget
3
"
>
<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=
"layoutWidget
5
"
>
<property
name=
"geometry"
>
<rect>
<x>
20
</x>
...
...
This diff is collapsed.
Click to expand it.
install_packages_debian.txt
+
5
−
0
View file @
f324d9a2
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
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment