mirror of
https://github.com/sqlitebrowser/sqlitebrowser.git
synced 2026-04-29 00:19:15 -05:00
e7924f3739
Add a new test class for testing the import functionality. Currently it's only covers some test cases for the CSV import. Since the function to test here (DBBrowserDB::decodeCSV) is part of the DBBrowserDB class, that class has a reference to the main window and the main window basically depends on the entire rest of the project the makefile grew quite a bit unfortunately.
182 lines
4.8 KiB
CMake
182 lines
4.8 KiB
CMake
project(sqlb-unittests)
|
|
cmake_minimum_required(VERSION 2.8.9)
|
|
|
|
OPTION(USE_QT5 FALSE "Build with qt5")
|
|
|
|
if(NOT CMAKE_BUILD_TYPE)
|
|
set(CMAKE_BUILD_TYPE "Release")
|
|
endif()
|
|
|
|
set(ANTLR_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../libs/antlr-2.7.7)
|
|
set(QHEXEDIT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../libs/qhexedit)
|
|
set(QCUSTOMPLOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../libs/qcustomplot-source)
|
|
|
|
add_subdirectory(${ANTLR_DIR} ${CMAKE_CURRENT_BINARY_DIR}/antlr)
|
|
add_subdirectory(${QHEXEDIT_DIR} ${CMAKE_CURRENT_BINARY_DIR}/qcustomplot-source)
|
|
add_subdirectory(${QCUSTOMPLOT_DIR} ${CMAKE_CURRENT_BINARY_DIR}/qhexedit)
|
|
|
|
if(USE_QT5)
|
|
find_package(Qt5Widgets REQUIRED)
|
|
set(CMAKE_AUTOMOC ON)
|
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
|
else()
|
|
find_package(Qt4 COMPONENTS QtTest QtCore QtGui QtNetwork REQUIRED)
|
|
include(${QT_USE_FILE})
|
|
add_definitions(${QT_DEFINITIONS})
|
|
endif()
|
|
|
|
set(SQLB_HDR
|
|
../src/gen_version.h
|
|
../src/sqlitedb.h
|
|
../src/sqlitetypes.h
|
|
../src/grammar/sqlite3TokenTypes.hpp
|
|
../src/grammar/Sqlite3Lexer.hpp
|
|
../src/grammar/Sqlite3Parser.hpp
|
|
)
|
|
|
|
set(SQLB_MOC_HDR
|
|
../src/AboutDialog.h
|
|
../src/CreateIndexDialog.h
|
|
../src/EditDialog.h
|
|
../src/EditTableDialog.h
|
|
../src/ExportCsvDialog.h
|
|
../src/ExtendedTableWidget.h
|
|
../src/FilterTableHeader.h
|
|
../src/ImportCsvDialog.h
|
|
../src/MainWindow.h
|
|
../src/PreferencesDialog.h
|
|
../src/SQLiteSyntaxHighlighter.h
|
|
../src/SqlExecutionArea.h
|
|
../src/VacuumDialog.h
|
|
../src/sqlitetablemodel.h
|
|
../src/sqltextedit.h
|
|
../src/DbStructureModel.h
|
|
../src/Application.h
|
|
../src/tests/TestImport.h
|
|
../src/tests/testsqlobjects.h
|
|
)
|
|
|
|
set(SQLB_SRC
|
|
../src/AboutDialog.cpp
|
|
../src/CreateIndexDialog.cpp
|
|
../src/EditDialog.cpp
|
|
../src/EditTableDialog.cpp
|
|
../src/ExportCsvDialog.cpp
|
|
../src/ExtendedTableWidget.cpp
|
|
../src/FilterTableHeader.cpp
|
|
../src/ImportCsvDialog.cpp
|
|
../src/MainWindow.cpp
|
|
../src/PreferencesDialog.cpp
|
|
../src/SQLiteSyntaxHighlighter.cpp
|
|
../src/SqlExecutionArea.cpp
|
|
../src/VacuumDialog.cpp
|
|
../src/sqlitedb.cpp
|
|
../src/sqlitetablemodel.cpp
|
|
../src/sqlitetypes.cpp
|
|
../src/sqltextedit.cpp
|
|
../src/DbStructureModel.cpp
|
|
../src/Application.cpp
|
|
../src/grammar/Sqlite3Lexer.cpp
|
|
../src/grammar/Sqlite3Parser.cpp
|
|
../src/tests/TestImport.cpp
|
|
../src/tests/testsqlobjects.cpp
|
|
../src/tests/TestMain.cpp
|
|
)
|
|
|
|
set(SQLB_FORMS
|
|
../src/AboutDialog.ui
|
|
../src/CreateIndexDialog.ui
|
|
../src/EditDialog.ui
|
|
../src/EditTableDialog.ui
|
|
../src/ExportCsvDialog.ui
|
|
../src/ImportCsvDialog.ui
|
|
../src/MainWindow.ui
|
|
../src/PreferencesDialog.ui
|
|
../src/SqlExecutionArea.ui
|
|
../src/VacuumDialog.ui
|
|
)
|
|
|
|
set(SQLB_RESOURCES
|
|
../src/icons/icons.qrc
|
|
)
|
|
|
|
if(USE_QT5)
|
|
qt5_wrap_ui(SQLB_FORM_HDR ${SQLB_FORMS})
|
|
qt5_add_resources(SQLB_RESOURCES_RCC ${SQLB_RESOURCES})
|
|
else()
|
|
QT4_WRAP_CPP(SQLB_MOC ${SQLB_MOC_HDR})
|
|
QT4_WRAP_UI(SQLB_FORM_HDR ${SQLB_FORMS})
|
|
QT4_ADD_RESOURCES(SQLB_RESOURCES_RCC ${SQLB_RESOURCES})
|
|
endif()
|
|
|
|
# get git version hash
|
|
file(WRITE ${CMAKE_CURRENT_SOURCE_DIR}/../src/gen_version.h
|
|
"#ifndef __GEN_VERSIONS_H__\n"
|
|
"#define __GEN_VERSIONS_H__\n"
|
|
"#define APP_VERSION \"master_git\"\n"
|
|
"#define MAJOR_VERSION 999\n"
|
|
"#define MINOR_VERSION 0\n"
|
|
"#define PATCH_VERSION 0\n"
|
|
"#endif\n")
|
|
|
|
#icon and correct libs/subsystem for windows
|
|
if(WIN32)
|
|
#enable version check for windows
|
|
add_definitions(-DCHECKNEWVERSION)
|
|
|
|
IF( MINGW )
|
|
# resource compilation for MinGW
|
|
ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/sqlbicon.o
|
|
COMMAND windres -I${CMAKE_CURRENT_SOURCE_DIR} -i${CMAKE_CURRENT_SOURCE_DIR}/src/winapp.rc -o ${CMAKE_CURRENT_BINARY_DIR}/sqlbicon.o )
|
|
set(SQLB_SRC ${SQLB_SRC} ${CMAKE_CURRENT_BINARY_DIR}/sqlbicon.o)
|
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-subsystem,windows")
|
|
set(WIN32_STATIC_LINK -Wl,-Bstatic -lssl -lcrypto -lws2_32)
|
|
set(ADDITIONAL_LIBS lcms lzma)
|
|
ELSE( MINGW )
|
|
set(SQLB_SRC ${SQLB_SRC} ${CMAKE_CURRENT_SOURCE_DIR}src/winapp.rc)
|
|
ENDIF( MINGW )
|
|
endif(WIN32)
|
|
|
|
# add extra library path for MacOS
|
|
if(APPLE)
|
|
find_library(LIBSQLITE sqlite3 HINTS /usr/local/lib /usr/local/opt/sqlite/lib)
|
|
set(ADDITIONAL_INCLUDE_PATHS /usr/local/include /usr/local/opt/sqlite/include)
|
|
else(APPLE)
|
|
find_library(LIBSQLITE sqlite3)
|
|
endif(APPLE)
|
|
|
|
include_directories(
|
|
${CMAKE_CURRENT_BINARY_DIR}
|
|
${ANTLR_DIR}
|
|
${QHEXEDIT_DIR}
|
|
${QCUSTOMPLOT_DIR}
|
|
${ADDITIONAL_INCLUDE_PATHS}
|
|
../src)
|
|
|
|
add_executable(${PROJECT_NAME}
|
|
${SQLB_HDR}
|
|
${SQLB_SRC}
|
|
${SQLB_FORM_HDR}
|
|
${SQLB_MOC}
|
|
${SQLB_RESOURCES_RCC})
|
|
|
|
if(USE_QT5)
|
|
qt5_use_modules(${PROJECT_NAME} Gui Widgets Network Test PrintSupport)
|
|
set(QT_LIBRARIES "")
|
|
endif()
|
|
add_dependencies(${PROJECT_NAME} antlr qhexedit qcustomplot)
|
|
|
|
link_directories(
|
|
${CMAKE_CURRENT_BINARY_DIR}/${ANTLR_DIR}
|
|
${CMAKE_CURRENT_BINARY_DIR}/${QHEXEDIT_DIR}
|
|
${CMAKE_CURRENT_BINARY_DIR}/${QCUSTOMPLOT_DIR})
|
|
|
|
target_link_libraries(${PROJECT_NAME}
|
|
antlr
|
|
qhexedit
|
|
qcustomplot
|
|
${QT_LIBRARIES}
|
|
${WIN32_STATIC_LINK}
|
|
${LIBSQLITE}
|
|
${ADDITIONAL_LIBS})
|