Skip to content

Commit

Permalink
- changed configuration to easily allow to change qt version
Browse files Browse the repository at this point in the history
  • Loading branch information
fbergmann committed Feb 21, 2014
1 parent e0021b4 commit 4c682f5
Show file tree
Hide file tree
Showing 7 changed files with 180 additions and 57 deletions.
48 changes: 39 additions & 9 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,33 @@
cmake_minimum_required(VERSION 2.6)
project(spatial)

set(CPACK_PACKAGE_VERSION_MAJOR "0")
set(CPACK_PACKAGE_VERSION_MINOR "2")
set(CPACK_PACKAGE_VERSION_PATCH "1")


set(SPATIAL_VERSION_MAJOR)
set(SPATIAL_VERSION_MINOR)
set(SPATIAL_VERSION_PATCH)
set(SPATIAL_VERSION_RELEASE)

if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/VERSION.txt")

file(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/VERSION.txt" VersionString NEWLINE_CONSUME)
string(STRIP "${VersionString}" VersionString)
string(REPLACE "." ";" VersionString "${VersionString}" )
string(REPLACE "-" ";" VersionString "${VersionString}" )
list(LENGTH VersionString versionLength)
list(GET VersionString 0 SPATIAL_VERSION_MAJOR )
list(GET VersionString 1 SPATIAL_VERSION_MINOR )
list(GET VersionString 2 SPATIAL_VERSION_PATCH )

if(${versionLength} GREATER 3)
list(GET VersionString 3 SPATIAL_VERSION_RELEASE )
endif()

endif()

set(CPACK_PACKAGE_VERSION_MAJOR "${SPATIAL_VERSION_MAJOR}")
set(CPACK_PACKAGE_VERSION_MINOR "${SPATIAL_VERSION_MINOR}")
set(CPACK_PACKAGE_VERSION_PATCH "${SPATIAL_VERSION_PATCH}")
set(CPACK_SOURCE_GENERATOR "ZIP")
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/license.txt")
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/readme.md")
Expand All @@ -30,18 +54,24 @@ find_library(LIBSBML_LIBRARY
NAMES sbml-static.lib sbml-static sbml
PATHS /usr/lib /usr/local/lib /usr/lib64 /usr/local/lib64
${CMAKE_SOURCE_DIR}
${LIBSBML_DEPENDENCY_DIR}/lib
${SPATIAL_DEPENDENCY_DIR}/lib
DOC "The file name of the libsbml library."
)

find_path(LIBSBML_INCLUDE_DIR
NAMES sbml/SBase.h
PATHS /usr/include /usr/local/include
${CMAKE_SOURCE_DIR}/include
${LIBSBML_DEPENDENCY_DIR}/include
${SPATIAL_DEPENDENCY_DIR}/include
DOC "The libsbml include directory."
)

option(LIBSBML_STATIC "Linking against the static libSBML." ON)
if (LIBSBML_STATIC)
add_definitions(-DLIBSBML_STATIC -DLIBLAX_STATIC)
set(BUILD_DEFINITIONS "${BUILD_DEFINITIONS} -DLIBSBML_STATIC -DLIBLAX_STATIC")
endif()


###############################################################################
#
Expand Down Expand Up @@ -80,15 +110,15 @@ find_library(SBW_LIBRARY
NAMES SBW-static.lib SBW-static SBW
PATHS /usr/lib /usr/local/lib /usr/lib64 /usr/local/lib64
${CMAKE_SOURCE_DIR}
${LIBSBML_DEPENDENCY_DIR}/lib
${SPATIAL_DEPENDENCY_DIR}/lib
DOC "The file name of the SBW library."
)

find_path(SBW_INCLUDE_DIR
NAMES SBW/SBW.h
PATHS /usr/include /usr/local/include
${CMAKE_SOURCE_DIR}/include
${LIBSBML_DEPENDENCY_DIR}/include
${SPATIAL_DEPENDENCY_DIR}/include
DOC "The SBW include directory."
)

Expand Down Expand Up @@ -128,8 +158,8 @@ endif(WITH_CSHARP)
if(WIN32 AND NOT CYGWIN)
add_definitions(-DLIBSBML_EXPORTS -DWIN32)
if(MSVC)
add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE)
set(BUILD_DEFINITIONS "${BUILD_DEFINITIONS} -D_CRT_SECURE_NO_WARNINGS")
add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS)
set(BUILD_DEFINITIONS "${BUILD_DEFINITIONS} -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS")
option(WITH_STATIC_RUNTIME "Compile using the static MSVC Runtime." OFF)
if(WITH_STATIC_RUNTIME)
foreach(flag_var
Expand Down
86 changes: 50 additions & 36 deletions SpatialUI/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,26 @@
#
project (SpatialUI)

find_package(Qt4 4.7.0 REQUIRED QtCore QtOpenGL QtGui Qt3Support)
include(${CMAKE_CURRENT_SOURCE_DIR}/ChooseQtVersion.cmake)
QT_FIND_MODULES(Core Gui OpenGL)

#find_package(Qt4 4.7.0 REQUIRED QtCore QtOpenGL QtGui Qt3Support)

file(GLOB CPP_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp )
file(GLOB H_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.h )
file(GLOB UI_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.ui )
file(GLOB RCC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.qrc )

qt4_wrap_cpp(HEADERS_MOC ${H_FILES})
qt4_wrap_ui(FORMS_HEADERS ${UI_FILES})
if (Qt5_FOUND)
qt5_add_resources(RESOURCES_RCC ${RCC_FILES})
elseif(Qt4_FOUND OR QT4_FOUND)
qt4_add_resources(RESOURCES_RCC ${RCC_FILES})
endif()

include(${QT_USE_FILE})
add_definitions(${QT_DEFINITIONS})
#qt4_wrap_cpp(HEADERS_MOC ${H_FILES})
#qt4_wrap_ui(FORMS_HEADERS ${UI_FILES})
#include(${QT_USE_FILE})
#add_definitions(${QT_DEFINITIONS})

include_directories(${CMAKE_CURRENT_BINARY_DIR})
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
Expand Down Expand Up @@ -70,69 +77,76 @@ add_definitions(-DLINUX)
endif()
endif()


add_executable(SpatialUI ${EXECUTABLE_FLAGS} ${CPP_FILES}
${H_FILES}
${HEADERS_MOC}
${FORMS_HEADERS}
${RESOURCES_RCC}
${HEADERS_MOC}
${FORMS_HEADERS}
${RESOURCES_RCC}
${SPATIAL_CPP_FILES}
)
target_link_libraries(SpatialUI ${EXTRA_LIBS} SpatialSBML ${QT_LIBRARIES})
if (ENABLE_SBW)
)

target_link_libraries(SpatialUI ${EXTRA_LIBS} SpatialSBML ${SBW_LIBRARY})
QT_BIND_TO_TARGET(SpatialUI)

if (WIN32)
target_link_libraries(SpatialUI Ws2_32.lib)
endif()
target_link_libraries(SpatialUI ${EXTRA_LIBS} SpatialSBML)

if (ENABLE_SBW)
target_link_libraries(SpatialUI ${EXTRA_LIBS} SpatialSBML ${SBW_LIBRARY})

if (WIN32)
target_link_libraries(SpatialUI Ws2_32.lib)
endif()

endif()


file(GLOB PALETTE_FILES palettes/*.txt )


SET(DIRS)

foreach(${lib} ${EXTRA_LIBS})
if (EXISTS ${lib})
get_filename_component(dir ${lib} PATH)
SET(DIRS ${DIRS} ${dir})
endif()
endforeach()

if (NOT DIRS)
if (EXISTS "${EXTRA_LIBS}")
get_filename_component(DIRS ${EXTRA_LIBS} PATH)
endif()
endif()

if (QT_BINARY_DIR)
SET(DIRS ${QT_BINARY_DIR} ${DIRS})
SET(DIRS ${QT_BINARY_DIR} ${DIRS})
endif()


if(NOT APPLE)

SET(APPS "\${CMAKE_INSTALL_PREFIX}/bin/SpatialUI${CMAKE_EXECUTABLE_SUFFIX}" CACHE INTERNAL "")
install(FILES ${PALETTE_FILES} DESTINATION bin)
install(TARGETS SpatialUI DESTINATION bin)
# ensure that next to the binaries also dependencies are copied
install(CODE "
include(BundleUtilities)
fixup_bundle(\"${APPS}\" \"\" \"${DIRS}\")
" COMPONENT Runtime)
SET(APPS "\${CMAKE_INSTALL_PREFIX}/bin/SpatialUI${CMAKE_EXECUTABLE_SUFFIX}" CACHE INTERNAL "")
install(FILES ${PALETTE_FILES} DESTINATION bin)
install(TARGETS SpatialUI DESTINATION bin)
# ensure that next to the binaries also dependencies are copied
install(CODE "
include(BundleUtilities)
fixup_bundle(\"${APPS}\" \"\" \"${DIRS}\")
" COMPONENT Runtime)

else()

install(FILES ${PALETTE_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/SpatialUI.app/Contents/MacOS)
install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/ICON_SpatialUI.icns DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/SpatialUI.app/Contents/Resources)
# on OS X everything is different, here we need to first fix the app bundle,
# and only then install it
SET(APPS "${CMAKE_CURRENT_BINARY_DIR}/SpatialUI.app" CACHE INTERNAL "")
# ensure that next to the binaries also dependencies are copied
install(CODE "
include(BundleUtilities)
fixup_bundle(\"${APPS}\" \"\" \"${DIRS}\")
" COMPONENT Runtime)
install(TARGETS SpatialUI DESTINATION .)
install(FILES ${PALETTE_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/SpatialUI.app/Contents/MacOS)
install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/ICON_SpatialUI.icns DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/SpatialUI.app/Contents/Resources)
# on OS X everything is different, here we need to first fix the app bundle,
# and only then install it
SET(APPS "${CMAKE_CURRENT_BINARY_DIR}/SpatialUI.app" CACHE INTERNAL "")
# ensure that next to the binaries also dependencies are copied
install(CODE "
include(BundleUtilities)
fixup_bundle(\"${APPS}\" \"\" \"${DIRS}\")
" COMPONENT Runtime)
install(TARGETS SpatialUI DESTINATION .)

endif()

include(InstallRequiredSystemLibraries)
74 changes: 74 additions & 0 deletions SpatialUI/ChooseQtVersion.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
cmake_minimum_required(VERSION 2.8.9)

macro(QT_USE_MODULES _target)
# Enable AUTOMOC
set_target_properties(${_target} PROPERTIES AUTOMOC TRUE)
# Local variables
set(_modules_qt4)
set(_modules_qt5)
# Prepare modules
foreach(_module ${ARGN})
list(APPEND _modules_qt4 Qt${_module})
list(APPEND _modules_qt5 ${_module})
if(_module MATCHES "Gui")
list(APPEND _modules_qt5 "Widgets")
endif(_module MATCHES "Gui")
endforeach(_module ${ARGN})
list(REMOVE_DUPLICATES _modules_qt4)
list(REMOVE_DUPLICATES _modules_qt5)
# Find Qt libraries
find_package(Qt5 QUIET COMPONENTS ${_modules_qt5})
if(Qt5_FOUND)
qt5_use_modules(${_target} ${_modules_qt5})
else(Qt5_FOUND)
find_package(Qt4 QUIET COMPONENTS ${_modules_qt4})
if(Qt4_FOUND OR QT4_FOUND)
include(${QT_USE_FILE})
include_directories(${QT_INCLUDES})
add_definitions(${QT_DEFINITIONS})
target_link_libraries(${_target} ${QT_LIBRARIES})
endif(Qt4_FOUND OR QT4_FOUND)
endif(Qt5_FOUND)
endmacro(QT_USE_MODULES)

macro(QT_FIND_MODULES)
# Local variables
set(_modules_qt4)
set(_modules_qt5)
# Prepare modules
foreach(_module ${ARGN})
message("Added ${_module}")
list(APPEND _modules_qt4 Qt${_module})
list(APPEND _modules_qt5 ${_module})
if(_module MATCHES "Gui")
list(APPEND _modules_qt5 "Widgets")
endif(_module MATCHES "Gui")
endforeach(_module ${ARGN})
list(REMOVE_DUPLICATES _modules_qt4)
list(REMOVE_DUPLICATES _modules_qt5)
# Find Qt libraries
find_package(Qt5 QUIET COMPONENTS ${_modules_qt5})
if( NOT Qt5_FOUND)
find_package(Qt4 QUIET COMPONENTS ${_modules_qt4})
if(Qt4_FOUND OR QT4_FOUND)
include(${QT_USE_FILE})
include_directories(${QT_INCLUDES})
add_definitions(${QT_DEFINITIONS})
endif(Qt4_FOUND OR QT4_FOUND)
endif( NOT Qt5_FOUND)
endmacro(QT_FIND_MODULES)

macro(QT_BIND_TO_TARGET _target)
# Enable AUTOMOC
set_target_properties(${_target} PROPERTIES AUTOMOC TRUE)
if(Qt5_FOUND)
qt5_use_modules(${_target} ${_modules_qt5})
else(Qt5_FOUND)
if(Qt4_FOUND OR QT4_FOUND)
include(${QT_USE_FILE})
include_directories(${QT_INCLUDES})
add_definitions(${QT_DEFINITIONS})
target_link_libraries(${_target} ${QT_LIBRARIES})
endif(Qt4_FOUND OR QT4_FOUND)
endif(Qt5_FOUND)
endmacro(QT_BIND_TO_TARGET)
2 changes: 1 addition & 1 deletion SpatialUI/geometryeditwidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,7 @@ void GeometryEditWidget::handleButtons(QAbstractButton * button)
QPixmap temp(*ui->imageLabel->pixmap());
if (!temp.save(fileName))
{
cerr << "saving: " << fileName.ascii() << " failed!!!!!" << endl;
cerr << "saving: " << fileName.toStdString() << " failed!!!!!" << endl;
}
}

Expand Down
18 changes: 11 additions & 7 deletions SpatialUI/spatialmainwidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ void SpatialMainWindow::addSpecies()
else
{
item = new DisplayItem(
currentSpecies.ascii(),
currentSpecies.toStdString(),
palettes[index]
);
displayItems.push_back(item);
Expand Down Expand Up @@ -577,7 +577,7 @@ void SpatialMainWindow::loadFromDocument(SBMLDocument* toLoad)
.size() > 0)
{
displayItems.push_back(new DisplayItem(
lstSpecies->itemText(0).ascii(),
lstSpecies->itemText(0).toStdString(),
palettes[0]
));
ui->lstAssignments->addItem(lstSpecies->itemText(0));
Expand Down Expand Up @@ -657,7 +657,7 @@ void SpatialMainWindow::loadFile(const QString &fileName)
}

lastDir = QFileInfo(fileName).absoluteDir().absolutePath();
doc = readSBML(fileName.ascii());
doc = readSBML(fileName.toStdString().c_str());

setCurrentFile(fileName);
loadFromDocument(doc);
Expand Down Expand Up @@ -926,7 +926,7 @@ void SpatialMainWindow::sbwRegister()
try
{
// Set the commandline so that SBW knows how to call us.
std::string Self = QCoreApplication::arguments().at(0).ascii();
std::string Self = QCoreApplication::arguments().at(0).toStdString();

mpSBWModule->setCommandLine(Self);
mpSBWModule->registerModule();
Expand Down Expand Up @@ -990,7 +990,7 @@ void SpatialMainWindow::sbwRefreshMenu()
QStringList ModuleList;
QStringList ServiceList;

std::string Self = QCoreApplication::arguments().at(0).ascii();
std::string Self = QCoreApplication::arguments().at(0).toStdString();

int i = 0;

Expand Down Expand Up @@ -1083,6 +1083,10 @@ void SpatialMainWindow::sbwRefreshMenu()
return;
}

void SpatialMainWindow::sbwSlotMenuTriggeredFinished(bool success)
{
}

void SpatialMainWindow::sbwSlotMenuTriggered(QAction * pAction)
{

Expand All @@ -1096,8 +1100,8 @@ void SpatialMainWindow::sbwSlotMenuTriggered(QAction * pAction)
{
try
{
int nModule = SBWLowLevel::getModuleInstance(mSBWAnalyzerModules[mSBWActionId].ascii());
int nService = SBWLowLevel::moduleFindServiceByName(nModule, mSBWAnalyzerServices[mSBWActionId].ascii());
int nModule = SBWLowLevel::getModuleInstance(mSBWAnalyzerModules[mSBWActionId].toStdString().c_str());
int nService = SBWLowLevel::moduleFindServiceByName(nModule, mSBWAnalyzerServices[mSBWActionId].toStdString().c_str());
int nMethod = SBWLowLevel::serviceGetMethod(nModule, nService, "void doAnalysis(string)");

DataBlockWriter args;
Expand Down
8 changes: 4 additions & 4 deletions SpatialUI/spatialmainwidget.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@


#ifdef USE_SBW_INTEGRATION
# include <QtGui/QApplication>
# include <QtCore/QEvent>
# include <QtCore/QMutex>
# include <QtCore/QWaitCondition>
# include <QApplication>
# include <QEvent>
# include <QMutex>
# include <QWaitCondition>

# define WIN32_LEAN_AND_MEAN
# include <SBW/SBW.h>
Expand Down
Loading

0 comments on commit 4c682f5

Please sign in to comment.