Move all core-functionality to subsurface-core

And adapt a new CMakeLists.txt file for it. On the way I've also
found out that we where double-compilling a few files. I've also
set the subsurface-core as a include_path but that was just to
reduce the noise on this commit, since I plan to remove it from
the include path to make it obligatory to specify something like

 include "subsurface-core/dive.h"

for the header files. Since the app is growing quite a bit we ended
up having a few different files with almost same name that did
similar things, I want to kill that (for instance Dive.h, dive.h,
PrintDive.h and such).

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Tomaz Canabrava 2015-09-02 20:52:34 -03:00 committed by Dirk Hohndel
parent a079821423
commit 4c0156e3d5
105 changed files with 102 additions and 78 deletions

View file

@ -23,6 +23,12 @@ option(FBSUPPORT "allow posting to Facebook" ON)
option(BTSUPPORT "enable support for QtBluetooth (requires Qt5.4 or newer)" ON) option(BTSUPPORT "enable support for QtBluetooth (requires Qt5.4 or newer)" ON)
option(FTDISUPPORT "enable support for libftdi based serial" OFF) option(FTDISUPPORT "enable support for libftdi based serial" OFF)
add_definitions(-DSUBSURFACE_SOURCE="${CMAKE_SOURCE_DIR}")
if(BTSUPPORT)
add_definitions(-DBT_SUPPORT)
endif()
set(CMAKE_MODULE_PATH set(CMAKE_MODULE_PATH
${CMAKE_MODULE_PATH} ${CMAKE_MODULE_PATH}
${${PROJECT_NAME}_SOURCE_DIR}/cmake/Modules ${${PROJECT_NAME}_SOURCE_DIR}/cmake/Modules
@ -34,6 +40,7 @@ include_directories(.
qt-ui qt-ui
qt-models qt-models
qt-ui/profile qt-ui/profile
subsurface-core/
) )
# get the version string -- this is only used for Mac Bundle at this point # get the version string -- this is only used for Mac Bundle at this point
@ -268,19 +275,16 @@ add_custom_target(
set(PLATFORM_SRC unknown_platform.c) set(PLATFORM_SRC unknown_platform.c)
if(CMAKE_SYSTEM_NAME STREQUAL "Linux") if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(SUBSURFACE_TARGET subsurface) set(SUBSURFACE_TARGET subsurface)
set(PLATFORM_SRC linux.c)
# in some builds we appear to be missing libz for some strange reason... # in some builds we appear to be missing libz for some strange reason...
set(SUBSURFACE_LINK_LIBRARIES ${SUBSURFACE_LINK_LIBRARIES} -lz) set(SUBSURFACE_LINK_LIBRARIES ${SUBSURFACE_LINK_LIBRARIES} -lz)
endif() endif()
if(ANDROID) if(ANDROID)
set(PLATFORM_SRC android.cpp)
set(SUBSURFACE_TARGET subsurface) set(SUBSURFACE_TARGET subsurface)
# To allow us to debug log to logcat # To allow us to debug log to logcat
set(SUBSURFACE_LINK_LIBRARIES ${SUBSURFACE_LINK_LIBRARIES} -llog) set(SUBSURFACE_LINK_LIBRARIES ${SUBSURFACE_LINK_LIBRARIES} -llog)
endif() endif()
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
set(SUBSURFACE_TARGET Subsurface) set(SUBSURFACE_TARGET Subsurface)
set(PLATFORM_SRC macos.c)
find_library(APP_SERVICES_LIBRARY ApplicationServices) find_library(APP_SERVICES_LIBRARY ApplicationServices)
find_library(HID_LIB HidApi) find_library(HID_LIB HidApi)
set(SUBSURFACE_LINK_LIBRARIES ${SUBSURFACE_LINK_LIBRARIES} ${HID_LIB}) set(SUBSURFACE_LINK_LIBRARIES ${SUBSURFACE_LINK_LIBRARIES} ${HID_LIB})
@ -299,7 +303,6 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
endif() endif()
if(CMAKE_SYSTEM_NAME STREQUAL "Windows") if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
set(SUBSURFACE_TARGET subsurface) set(SUBSURFACE_TARGET subsurface)
set(PLATFORM_SRC windows.c)
set(SUBSURFACE_LINK_LIBRARIES ${SUBSURFACE_LINK_LIBRARIES} -lwsock32 -lws2_32) set(SUBSURFACE_LINK_LIBRARIES ${SUBSURFACE_LINK_LIBRARIES} -lwsock32 -lws2_32)
remove_definitions(-DUNICODE) remove_definitions(-DUNICODE)
add_definitions(-mwindows -D_WIN32) add_definitions(-mwindows -D_WIN32)
@ -307,68 +310,7 @@ endif()
# include translations # include translations
add_subdirectory(translations) add_subdirectory(translations)
add_subdirectory(subsurface-core)
if(BTSUPPORT)
add_definitions(-DBT_SUPPORT)
set(BT_SRC_FILES qt-ui/btdeviceselectiondialog.cpp)
set(BT_CORE_SRC_FILES qtserialbluetooth.cpp)
endif()
# compile the core library, in C.
set(SUBSURFACE_CORE_LIB_SRCS
cochran.c
datatrak.c
deco.c
device.c
dive.c
divesite.c
divesite.cpp # some new stuff that is not c code but belongs to divesite.
divelist.c
equipment.c
file.c
git-access.c
libdivecomputer.c
liquivision.c
load-git.c
membuffer.c
ostctools.c
parse-xml.c
planner.c
profile.c
gaspressures.c
worldmap-save.c
save-git.c
save-xml.c
save-html.c
sha1.c
statistics.c
strtod.c
subsurfacestartup.c
time.c
uemis.c
uemis-downloader.c
version.c
# gettextfrommoc should be added because we are using it on the c-code.
gettextfromc.cpp
# dirk ported some core functionality to c++.
qthelper.cpp
divecomputer.cpp
exif.cpp
subsurfacesysinfo.cpp
devicedetails.cpp
configuredivecomputer.cpp
configuredivecomputerthreads.cpp
divesitehelpers.cpp
taxonomy.c
checkcloudconnection.cpp
windowtitleupdate.cpp
divelogexportlogic.cpp
qt-init.cpp
${BT_CORE_SRC_FILES}
${SERIAL_FTDI}
${PLATFORM_SRC}
)
source_group("Subsurface Core" FILES ${SUBSURFACE_CORE_LIB_SRCS})
if(FBSUPPORT) if(FBSUPPORT)
add_definitions(-DFBSUPPORT) add_definitions(-DFBSUPPORT)
@ -406,12 +348,9 @@ source_group("Subsurface Models" FILES ${SUBSURFACE_MODELS})
set(SUBSURFACE_APP set(SUBSURFACE_APP
main.cpp main.cpp
qt-gui.cpp qt-gui.cpp
qthelper.cpp
) )
source_group("Subsurface App" FILES ${SUBSURFACE_APP}) source_group("Subsurface App" FILES ${SUBSURFACE_APP})
add_library(subsurface_corelib STATIC ${SUBSURFACE_CORE_LIB_SRCS} )
target_link_libraries(subsurface_corelib ${QT_LIBRARIES})
add_library(subsurface_models STATIC ${SUBSURFACE_MODELS_LIB_SRCS}) add_library(subsurface_models STATIC ${SUBSURFACE_MODELS_LIB_SRCS})
target_link_libraries(subsurface_models ${QT_LIBRARIES}) target_link_libraries(subsurface_models ${QT_LIBRARIES})
@ -483,7 +422,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
endif() endif()
# build an automated html exporter # build an automated html exporter
add_executable(export-html EXCLUDE_FROM_ALL export-html.cpp qt-init.cpp qthelper.cpp ${SUBSURFACE_RESOURCES}) add_executable(export-html EXCLUDE_FROM_ALL export-html.cpp ${SUBSURFACE_RESOURCES})
target_link_libraries(export-html subsurface_corelib ${SUBSURFACE_LINK_LIBRARIES}) target_link_libraries(export-html subsurface_corelib ${SUBSURFACE_LINK_LIBRARIES})
# QTest based tests # QTest based tests
@ -495,7 +434,7 @@ macro(TEST NAME FILE)
set_tests_properties(${NAME}_run PROPERTIES DEPENDS ${NAME}_build) set_tests_properties(${NAME}_run PROPERTIES DEPENDS ${NAME}_build)
endmacro() endmacro()
add_definitions(-DSUBSURFACE_SOURCE="${CMAKE_SOURCE_DIR}")
add_definitions(-g) add_definitions(-g)
if(NOT NO_TESTS) if(NOT NO_TESTS)
enable_testing() enable_testing()

View file

@ -15,9 +15,9 @@
#include "metrics.h" #include "metrics.h"
#include "../dive.h" #include "subsurface-core/dive.h"
#include "../divelist.h" #include "subsurface-core/divelist.h"
#include "../divecomputer.h" #include "subsurface-core/divecomputer.h"
#include "cleanertablemodel.h" #include "cleanertablemodel.h"
#include "treemodel.h" #include "treemodel.h"

View file

@ -4,6 +4,10 @@ qt5_wrap_ui(SUBSURFACE_UI_HDRS ${SUBSURFACE_UI})
qt5_add_resources(SUBSURFACE_RESOURCES subsurface.qrc) qt5_add_resources(SUBSURFACE_RESOURCES subsurface.qrc)
source_group("Subsurface Interface Files" FILES ${SUBSURFACE_UI}) source_group("Subsurface Interface Files" FILES ${SUBSURFACE_UI})
if(BTSUPPORT)
set(BT_SRC_FILES btdeviceselectiondialog.cpp)
endif()
# the interface, in C++ # the interface, in C++
set(SUBSURFACE_INTERFACE set(SUBSURFACE_INTERFACE
updatemanager.cpp updatemanager.cpp

View file

@ -4,7 +4,7 @@
#include <QDialog> #include <QDialog>
#include <QStringListModel> #include <QStringListModel>
#include "ui_configuredivecomputerdialog.h" #include "ui_configuredivecomputerdialog.h"
#include "../libdivecomputer.h" #include "subsurface-core/libdivecomputer.h"
#include "configuredivecomputer.h" #include "configuredivecomputer.h"
#include <QStyledItemDelegate> #include <QStyledItemDelegate>
#include <QNetworkAccessManager> #include <QNetworkAccessManager>

View file

@ -9,8 +9,8 @@
#include <QAbstractTableModel> #include <QAbstractTableModel>
#include <QStyledItemDelegate> #include <QStyledItemDelegate>
#include "../dive.h" #include "subsurface-core/dive.h"
#include "../divelist.h" #include "subsurface-core/divelist.h"
namespace Ui { namespace Ui {
class DiveLogImportDialog; class DiveLogImportDialog;

View file

@ -1,7 +1,7 @@
#ifndef GRAPHICSVIEW_COMMON_H #ifndef GRAPHICSVIEW_COMMON_H
#define GRAPHICSVIEW_COMMON_H #define GRAPHICSVIEW_COMMON_H
#include "../color.h" #include "subsurface-core/color.h"
#include <QMap> #include <QMap>
#include <QVector> #include <QVector>
#include <QColor> #include <QColor>

View file

@ -0,0 +1,81 @@
set(PLATFORM_SRC unknown_platform.c)
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(PLATFORM_SRC linux.c)
elseif(ANDROID)
set(PLATFORM_SRC android.cpp)
elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
set(PLATFORM_SRC macos.c)
elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
set(PLATFORM_SRC windows.c)
endif()
if(FTDISUPPORT)
set(SERIAL_FTDI serial_ftdi.c)
endif()
if(BTSUPPORT)
add_definitions(-DBT_SUPPORT)
set(BT_SRC_FILES qt-ui/btdeviceselectiondialog.cpp)
set(BT_CORE_SRC_FILES qtserialbluetooth.cpp)
endif()
# compile the core library, in C.
set(SUBSURFACE_CORE_LIB_SRCS
cochran.c
datatrak.c
deco.c
device.c
dive.c
divesite.c
divesite.cpp
divelist.c
equipment.c
file.c
git-access.c
libdivecomputer.c
liquivision.c
load-git.c
membuffer.c
ostctools.c
parse-xml.c
planner.c
profile.c
gaspressures.c
worldmap-save.c
save-git.c
save-xml.c
save-html.c
sha1.c
statistics.c
strtod.c
subsurfacestartup.c
time.c
uemis.c
uemis-downloader.c
version.c
# gettextfrommoc should be added because we are using it on the c-code.
gettextfromc.cpp
# dirk ported some core functionality to c++.
qthelper.cpp
divecomputer.cpp
exif.cpp
subsurfacesysinfo.cpp
devicedetails.cpp
configuredivecomputer.cpp
configuredivecomputerthreads.cpp
divesitehelpers.cpp
taxonomy.c
checkcloudconnection.cpp
windowtitleupdate.cpp
divelogexportlogic.cpp
qt-init.cpp
qtserialbluetooth.cpp
${SERIAL_FTDI}
${PLATFORM_SRC}
${BT_CORE_SRC_FILES}
)
source_group("Subsurface Core" FILES ${SUBSURFACE_CORE_LIB_SRCS})
add_library(subsurface_corelib STATIC ${SUBSURFACE_CORE_LIB_SRCS} )
target_link_libraries(subsurface_corelib ${QT_LIBRARIES})

Some files were not shown because too many files have changed in this diff Show more