1 Star 0 Fork 0

Kunkka/sqlitebrowser

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
CMakeLists.txt 19.71 KB
一键复制 编辑 原始数据 按行查看 历史
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664
cmake_minimum_required(VERSION 3.15)
project(sqlitebrowser
VERSION 3.13.99
DESCRIPTION "GUI editor for SQLite databases"
)
# Fix behavior of CMAKE_CXX_STANDARD when targeting macOS.
if(POLICY CMP0025)
# https://cmake.org/cmake/help/latest/policy/CMP0025.html
cmake_policy(SET CMP0025 NEW)
endif()
# Fix warning of AUTOMOC behavior
if(POLICY CMP0071)
# https://cmake.org/cmake/help/latest/policy/CMP0071.html
cmake_policy(SET CMP0071 NEW)
endif()
# Fix warning of Cached Variables
if(POLICY CMP0102)
# https://cmake.org/cmake/help/latest/policy/CMP0102.html
cmake_policy(SET CMP0102 NEW)
endif()
include(GNUInstallDirs)
OPTION(BUILD_STABLE_VERSION "Don't build the stable version by default" OFF) # Choose between building a stable version or nightly (the default), depending on whether '-DBUILD_STABLE_VERSION=1' is passed on the command line or not.
OPTION(ENABLE_TESTING "Enable the unit tests" OFF)
OPTION(FORCE_INTERNAL_QSCINTILLA "Don't use the distribution's QScintilla library even if there is one" OFF)
OPTION(FORCE_INTERNAL_QCUSTOMPLOT "Don't use distribution's QCustomPlot even if available" ON)
OPTION(FORCE_INTERNAL_QHEXEDIT "Don't use distribution's QHexEdit even if available" ON)
OPTION(ALL_WARNINGS "Enable some useful warning flags" OFF)
OPTION(sqlcipher "Build with SQLCipher library" OFF)
OPTION(customTap "Using SQLCipher, SQLite and Qt installed through our custom Homebrew tap" OFF)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED True)
set(CMAKE_AUTOMOC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
if(APPLE)
add_executable(${PROJECT_NAME} MACOSX_BUNDLE)
elseif(WIN32)
add_executable(${PROJECT_NAME} WIN32)
else()
add_executable(${PROJECT_NAME})
endif()
# Determine the git commit hash
execute_process(
COMMAND git -C ${CMAKE_CURRENT_SOURCE_DIR} rev-parse --short --verify HEAD
OUTPUT_VARIABLE GIT_COMMIT_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET
)
if (GIT_COMMIT_HASH STREQUAL "")
MESSAGE(WARNING "Could not determine git commit hash")
set(GIT_COMMIT_HASH "Unknown")
endif()
add_definitions(-DGIT_COMMIT_HASH="${GIT_COMMIT_HASH}")
if(NOT BUILD_STABLE_VERSION)
# BUILD_VERSION is the current date in YYYYMMDD format. It is only
# used by the nightly version to add the date of the build.
# Default defined in Version.h.in
string(TIMESTAMP BUILD_VERSION "%Y%m%d")
target_compile_definitions(${PROJECT_NAME} PRIVATE BUILD_VERSION=${BUILD_VERSION})
endif()
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" "${CMAKE_MODULE_PATH}")
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Release")
endif()
if(MSVC)
if(CMAKE_CL_64)
# Paths for 64-bit windows builds
set(OPENSSL_PATH "C:/dev/OpenSSL-Win64" CACHE PATH "OpenSSL Path")
set(QT5_PATH "C:/dev/Qt/5.12.12/msvc2017_64" CACHE PATH "Qt5 Path")
# Choose between SQLCipher or SQLite, depending whether
# -Dsqlcipher=on is passed on the command line
if(sqlcipher)
set(SQLITE3_PATH "C:/git_repos/SQLCipher-Win64" CACHE PATH "SQLCipher Path")
else()
set(SQLITE3_PATH "C:/dev/SQLite-Win64" CACHE PATH "SQLite Path")
endif()
else()
# Paths for 32-bit windows builds
set(OPENSSL_PATH "C:/dev/OpenSSL-Win32" CACHE PATH "OpenSSL Path")
set(QT5_PATH "C:/dev/Qt/5.12.12/msvc2017" CACHE PATH "Qt5 Path")
# Choose between SQLCipher or SQLite, depending whether
# -Dsqlcipher=on is passed on the command line
if(sqlcipher)
set(SQLITE3_PATH "C:/git_repos/SQLCipher-Win32" CACHE PATH "SQLCipher Path")
else()
set(SQLITE3_PATH "C:/dev/SQLite-Win32" CACHE PATH "SQLite Path")
endif()
endif()
list(PREPEND CMAKE_PREFIX_PATH ${QT5_PATH} ${SQLITE3_PATH})
endif()
if(APPLE)
# For Intel Mac's
if(EXISTS /usr/local/opt/qt5)
list(APPEND CMAKE_PREFIX_PATH "/usr/local/opt/qt5")
endif()
# For Apple Silicon Mac's
if(EXISTS /opt/homebrew/opt/qt5)
list(APPEND CMAKE_PREFIX_PATH "/opt/homebrew/opt/qt5")
endif()
if(EXISTS /opt/homebrew/opt/sqlitefts5)
list(PREPEND CMAKE_PREFIX_PATH "/opt/homebrew/opt/sqlitefts5")
endif()
# For Apple Silicon Mac's and install dependencies via our Homebrew tap(sqlitebrowser/homebrew-tap)
if(customTap AND EXISTS /opt/homebrew/opt/)
list(PREPEND CMAKE_PREFIX_PATH "/opt/homebrew/opt/db4subqt@5")
list(PREPEND CMAKE_PREFIX_PATH "/opt/homebrew/opt/db4subsqlitefts@5")
if(sqlcipher)
list(APPEND SQLCIPHER_INCLUDE_DIR "/opt/homebrew/include")
list(APPEND SQLCIPHER_LIBRARY "/opt/homebrew/opt/db4subsqlcipher/lib/libsqlcipher.0.dylib")
endif()
endif()
endif()
find_package(Qt5 REQUIRED COMPONENTS Concurrent Gui LinguistTools Network PrintSupport Test Widgets Xml)
if(NOT FORCE_INTERNAL_QSCINTILLA)
find_package(QScintilla 2.8.10)
endif()
if(NOT FORCE_INTERNAL_QCUSTOMPLOT)
find_package(QCustomPlot)
endif()
if(NOT FORCE_INTERNAL_QHEXEDIT)
find_package(QHexEdit)
endif()
target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_LIST_DIR}/libs/json)
if(NOT QSCINTILLA_FOUND)
add_subdirectory(libs/qscintilla/Qt4Qt5)
endif()
if(NOT QHexEdit_FOUND)
add_subdirectory(libs/qhexedit)
endif()
if(NOT QCustomPlot_FOUND)
add_subdirectory(libs/qcustomplot-source)
endif()
if(ENABLE_TESTING)
enable_testing()
endif()
# generate file with version information
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/version.h.in
${CMAKE_CURRENT_BINARY_DIR}/version.h
)
target_sources(${PROJECT_NAME}
PRIVATE
src/sql/sqlitetypes.h
src/sql/Query.h
src/sql/ObjectIdentifier.h
src/csvparser.h
src/sqlite.h
src/Data.h
src/IconCache.h
src/sql/parser/ParserDriver.h
src/sql/parser/sqlite3_lexer.h
src/sql/parser/sqlite3_location.h
src/sql/parser/sqlite3_parser.hpp
)
target_sources(${PROJECT_NAME}
PRIVATE
src/sqlitedb.h
src/AboutDialog.h
src/EditIndexDialog.h
src/EditDialog.h
src/EditTableDialog.h
src/AddRecordDialog.h
src/ExportDataDialog.h
src/ExtendedTableWidget.h
src/FilterTableHeader.h
src/ImportCsvDialog.h
src/MainWindow.h
src/Settings.h
src/PreferencesDialog.h
src/SqlExecutionArea.h
src/VacuumDialog.h
src/sqlitetablemodel.h
src/RowLoader.h
src/RowCache.h
src/sqltextedit.h
src/docktextedit.h
src/DbStructureModel.h
src/dbstructureqitemviewfacade.h
src/Application.h
src/CipherDialog.h
src/ExportSqlDialog.h
src/SqlUiLexer.h
src/FileDialog.h
src/ColumnDisplayFormatDialog.h
src/FilterLineEdit.h
src/RemoteDatabase.h
src/ForeignKeyEditorDelegate.h
src/PlotDock.h
src/RemoteDock.h
src/RemoteModel.h
src/RemotePushDialog.h
src/FindReplaceDialog.h
src/ExtendedScintilla.h
src/FileExtensionManager.h
src/CondFormatManager.h
src/CipherSettings.h
src/DotenvFormat.h
src/Palette.h
src/CondFormat.h
src/RunSql.h
src/ProxyDialog.h
src/SelectItemsPopup.h
src/TableBrowser.h
src/ImageViewer.h
src/RemoteLocalFilesModel.h
src/RemoteCommitsModel.h
src/RemoteNetwork.h
src/TableBrowserDock.h
)
target_sources(${PROJECT_NAME}
PRIVATE
src/AboutDialog.cpp
src/EditIndexDialog.cpp
src/EditDialog.cpp
src/EditTableDialog.cpp
src/AddRecordDialog.cpp
src/ExportDataDialog.cpp
src/ExtendedTableWidget.cpp
src/FilterTableHeader.cpp
src/ImportCsvDialog.cpp
src/MainWindow.cpp
src/Settings.cpp
src/PreferencesDialog.cpp
src/SqlExecutionArea.cpp
src/VacuumDialog.cpp
src/sqlitedb.cpp
src/sqlitetablemodel.cpp
src/RowLoader.cpp
src/sql/sqlitetypes.cpp
src/sql/Query.cpp
src/sql/ObjectIdentifier.cpp
src/sqltextedit.cpp
src/docktextedit.cpp
src/csvparser.cpp
src/DbStructureModel.cpp
src/dbstructureqitemviewfacade.cpp
src/main.cpp
src/Application.cpp
src/CipherDialog.cpp
src/ExportSqlDialog.cpp
src/SqlUiLexer.cpp
src/FileDialog.cpp
src/ColumnDisplayFormatDialog.cpp
src/FilterLineEdit.cpp
src/RemoteDatabase.cpp
src/ForeignKeyEditorDelegate.cpp
src/PlotDock.cpp
src/RemoteDock.cpp
src/RemoteModel.cpp
src/RemotePushDialog.cpp
src/FindReplaceDialog.cpp
src/ExtendedScintilla.cpp
src/FileExtensionManager.cpp
src/CondFormatManager.cpp
src/Data.cpp
src/CipherSettings.cpp
src/DotenvFormat.cpp
src/Palette.cpp
src/CondFormat.cpp
src/RunSql.cpp
src/ProxyDialog.cpp
src/IconCache.cpp
src/SelectItemsPopup.cpp
src/TableBrowser.cpp
src/sql/parser/ParserDriver.cpp
src/sql/parser/sqlite3_lexer.cpp
src/sql/parser/sqlite3_parser.cpp
src/ImageViewer.cpp
src/RemoteLocalFilesModel.cpp
src/RemoteCommitsModel.cpp
src/RemoteNetwork.cpp
src/TableBrowserDock.cpp
)
set(SQLB_FORMS
src/AboutDialog.ui
src/EditIndexDialog.ui
src/EditDialog.ui
src/EditTableDialog.ui
src/AddRecordDialog.ui
src/ExportDataDialog.ui
src/ImportCsvDialog.ui
src/MainWindow.ui
src/PreferencesDialog.ui
src/SqlExecutionArea.ui
src/VacuumDialog.ui
src/CipherDialog.ui
src/ExportSqlDialog.ui
src/ColumnDisplayFormatDialog.ui
src/PlotDock.ui
src/RemoteDock.ui
src/RemotePushDialog.ui
src/FindReplaceDialog.ui
src/FileExtensionManager.ui
src/CondFormatManager.ui
src/ProxyDialog.ui
src/SelectItemsPopup.ui
src/TableBrowser.ui
src/ImageViewer.ui
)
set(SQLB_RESOURCES
src/icons/icons.qrc
src/translations/flags/flags.qrc
src/translations/translations.qrc
src/certs/CaCerts.qrc
src/qdarkstyle/dark/darkstyle.qrc
src/qdarkstyle/light/lightstyle.qrc
)
set(SQLB_MISC
src/sql/parser/sqlite3_parser.yy
src/sql/parser/sqlite3_lexer.ll
)
# Translation files
set(SQLB_TSS
"${CMAKE_SOURCE_DIR}/src/translations/sqlb_ar_SA.ts"
"${CMAKE_SOURCE_DIR}/src/translations/sqlb_cs.ts"
"${CMAKE_SOURCE_DIR}/src/translations/sqlb_zh.ts"
"${CMAKE_SOURCE_DIR}/src/translations/sqlb_zh_TW.ts"
"${CMAKE_SOURCE_DIR}/src/translations/sqlb_de.ts"
"${CMAKE_SOURCE_DIR}/src/translations/sqlb_es_ES.ts"
"${CMAKE_SOURCE_DIR}/src/translations/sqlb_fr.ts"
"${CMAKE_SOURCE_DIR}/src/translations/sqlb_ru.ts"
"${CMAKE_SOURCE_DIR}/src/translations/sqlb_pl.ts"
"${CMAKE_SOURCE_DIR}/src/translations/sqlb_pt_BR.ts"
"${CMAKE_SOURCE_DIR}/src/translations/sqlb_en_GB.ts"
"${CMAKE_SOURCE_DIR}/src/translations/sqlb_ko_KR.ts"
"${CMAKE_SOURCE_DIR}/src/translations/sqlb_tr.ts"
"${CMAKE_SOURCE_DIR}/src/translations/sqlb_uk_UA.ts"
"${CMAKE_SOURCE_DIR}/src/translations/sqlb_it.ts"
"${CMAKE_SOURCE_DIR}/src/translations/sqlb_ja.ts"
"${CMAKE_SOURCE_DIR}/src/translations/sqlb_nl.ts"
"${CMAKE_SOURCE_DIR}/src/translations/sqlb_sv.ts"
"${CMAKE_SOURCE_DIR}/src/translations/sqlb_id.ts"
)
# Windows image format plugin files
set(WIN_IMG_PLUGINS
"${QT5_PATH}/plugins/imageformats/qgif.dll"
"${QT5_PATH}/plugins/imageformats/qicns.dll"
"${QT5_PATH}/plugins/imageformats/qico.dll"
"${QT5_PATH}/plugins/imageformats/qjpeg.dll"
"${QT5_PATH}/plugins/imageformats/qsvg.dll"
"${QT5_PATH}/plugins/imageformats/qtga.dll"
"${QT5_PATH}/plugins/imageformats/qtiff.dll"
"${QT5_PATH}/plugins/imageformats/qwbmp.dll"
"${QT5_PATH}/plugins/imageformats/qwebp.dll"
)
set(WIN_IMG_PLUGINS_DEBUG
"${QT5_PATH}/plugins/imageformats/qgifd.dll"
"${QT5_PATH}/plugins/imageformats/qicnsd.dll"
"${QT5_PATH}/plugins/imageformats/qicod.dll"
"${QT5_PATH}/plugins/imageformats/qjpegd.dll"
"${QT5_PATH}/plugins/imageformats/qsvgd.dll"
"${QT5_PATH}/plugins/imageformats/qtgad.dll"
"${QT5_PATH}/plugins/imageformats/qtiffd.dll"
"${QT5_PATH}/plugins/imageformats/qwbmpd.dll"
"${QT5_PATH}/plugins/imageformats/qwebpd.dll"
)
# License files
set(LICENSE_FILES
LICENSE
LICENSE-PLUGINS
)
qt5_wrap_ui(SQLB_FORM_HDR ${SQLB_FORMS})
if(SQLB_TSS)
# add translations
foreach(SQLB_TS ${SQLB_TSS})
set_source_files_properties("${SQLB_TS}" PROPERTIES OUTPUT_LOCATION "${CMAKE_SOURCE_DIR}/src/translations")
endforeach()
qt5_add_translation(SQLB_QMS ${SQLB_TSS})
endif()
qt5_add_resources(SQLB_RESOURCES_RCC ${SQLB_RESOURCES})
#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_BINARY_DIR}" "-i${CMAKE_CURRENT_SOURCE_DIR}/src/winapp.rc" -o "${CMAKE_CURRENT_BINARY_DIR}/sqlbicon.o" VERBATIM
)
target_sources(${PROJECT_NAME} PRIVATE "${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 lzma)
else()
target_sources(${PROJECT_NAME} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/src/winapp.rc")
endif()
else()
set(LPTHREAD pthread)
endif()
#enable version check for macOS
if(APPLE)
add_definitions(-DCHECKNEWVERSION)
endif()
# SQLCipher option
if(sqlcipher)
add_definitions(-DENABLE_SQLCIPHER)
set(LIBSQLITE_NAME SQLCipher)
else()
set(LIBSQLITE_NAME SQLite3)
endif()
# add extra library path for MacOS and FreeBSD
set(EXTRAPATH APPLE OR ${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
if(EXTRAPATH)
list(PREPEND CMAKE_PREFIX_PATH /usr/local/opt/sqlite/lib)
list(PREPEND CMAKE_PREFIX_PATH /usr/local/opt/sqlitefts5/lib)
endif()
find_package(${LIBSQLITE_NAME})
if (sqlcipher)
target_link_libraries(${PROJECT_NAME} SQLCipher::SQLCipher)
else()
target_link_libraries(${PROJECT_NAME} SQLite::SQLite3)
endif()
if(MSVC)
if(sqlcipher)
find_file(SQLITE3_DLL sqlcipher.dll)
else()
find_file(SQLITE3_DLL sqlite3.dll)
endif()
endif()
target_include_directories(${PROJECT_NAME} PRIVATE src)
target_sources(${PROJECT_NAME}
PRIVATE
${SQLB_FORM_HDR}
${SQLB_MOC}
${SQLB_RESOURCES_RCC}
${SQLB_MISC}
)
# Warnings
if(ALL_WARNINGS AND CMAKE_COMPILER_IS_GNUCC)
target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Wextra -Wshadow -Wnon-virtual-dtor -Wold-style-cast -Wcast-align -Wunused -Woverloaded-virtual -Wpedantic -Wconversion -Wsign-conversion)
target_compile_options(${PROJECT_NAME} PRIVATE -Wdouble-promotion -Wformat=2 -Wlogical-op -Wuseless-cast)
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 7.0)
target_compile_options(${PROJECT_NAME} PRIVATE -Wnull-dereference -Wduplicated-cond -Wduplicated-branches)
endif()
endif()
set(QT_LIBS Qt5::Gui Qt5::Test Qt5::PrintSupport Qt5::Widgets Qt5::Network Qt5::Concurrent Qt5::Xml)
target_link_libraries(${PROJECT_NAME}
${LPTHREAD}
${QT_LIBS}
${WIN32_STATIC_LINK}
${ADDITIONAL_LIBS}
)
target_link_libraries(${PROJECT_NAME}
QHexEdit::QHexEdit
QCustomPlot::QCustomPlot
QScintilla::QScintilla
)
if(MSVC)
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "DB Browser for SQLite")
set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_DEBUG "/SUBSYSTEM:CONSOLE")
set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_DEFINITIONS_DEBUG "_CONSOLE")
set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_RELWITHDEBINFO "/SUBSYSTEM:CONSOLE")
set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_DEFINITIONS_RELWITHDEBINFO "_CONSOLE")
if(CMAKE_CL_64)
set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS,5.02 /ENTRY:mainCRTStartup")
set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_MINSIZEREL "/SUBSYSTEM:WINDOWS,5.02")
else()
set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS,5.01 /ENTRY:mainCRTStartup")
set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_MINSIZEREL "/SUBSYSTEM:WINDOWS,5.01")
endif()
endif()
if((NOT WIN32 AND NOT APPLE) OR MINGW)
install(TARGETS ${PROJECT_NAME}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
endif()
if(UNIX)
target_link_libraries(${PROJECT_NAME} dl)
endif()
if(ENABLE_TESTING)
add_subdirectory(src/tests)
endif()
if(UNIX)
install(FILES src/icons/${PROJECT_NAME}.png
DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/256x256/apps/
)
install(FILES images/logo.svg
DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/scalable/apps/
RENAME ${PROJECT_NAME}.svg
)
install(FILES distri/${PROJECT_NAME}.desktop
DESTINATION ${CMAKE_INSTALL_DATADIR}/applications/
)
install(FILES distri/${PROJECT_NAME}.desktop.appdata.xml
DESTINATION ${CMAKE_INSTALL_DATADIR}/metainfo/
)
endif()
if(WIN32 AND MSVC)
install(TARGETS ${PROJECT_NAME}
RUNTIME DESTINATION "/"
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
set(QT5_BIN_PATH ${QT5_PATH}/bin)
# The Qt5 Debug configuration library files have a 'd' postfix
install(FILES
${QT5_BIN_PATH}/Qt5Cored.dll
${QT5_BIN_PATH}/Qt5Guid.dll
${QT5_BIN_PATH}/Qt5Networkd.dll
${QT5_BIN_PATH}/Qt5PrintSupportd.dll
${QT5_BIN_PATH}/Qt5Widgetsd.dll
${QT5_BIN_PATH}/Qt5Concurrentd.dll
${QT5_BIN_PATH}/Qt5Svgd.dll
DESTINATION "/"
CONFIGURATIONS Debug
)
# The Qt5 Release configuration files don't have a postfix
install(FILES
${QT5_BIN_PATH}/Qt5Core.dll
${QT5_BIN_PATH}/Qt5Gui.dll
${QT5_BIN_PATH}/Qt5Network.dll
${QT5_BIN_PATH}/Qt5PrintSupport.dll
${QT5_BIN_PATH}/Qt5Widgets.dll
${QT5_BIN_PATH}/Qt5Concurrent.dll
${QT5_BIN_PATH}/Qt5Svg.dll
DESTINATION "/"
CONFIGURATIONS Release
)
# The files below are common to all configurations
install(FILES
${SQLITE3_DLL}
${OPENSSL_PATH}/libeay32.dll
${OPENSSL_PATH}/ssleay32.dll
DESTINATION "/"
)
install(FILES
${QT5_PATH}/plugins/platforms/qwindows.dll
DESTINATION platforms
)
# The XML dll
install(FILES
"${QT5_PATH}/bin/Qt5Xmld.dll"
DESTINATION "/"
CONFIGURATIONS Debug
)
install(FILES
"${QT5_PATH}/bin/Qt5Xml.dll"
DESTINATION "/"
CONFIGURATIONS Release
)
# The image format plugins
install(FILES
${WIN_IMG_PLUGINS_DEBUG}
DESTINATION imageformats
CONFIGURATIONS Debug
)
install(FILES
${WIN_IMG_PLUGINS}
DESTINATION imageformats
CONFIGURATIONS Release
)
# The license files
install(FILES
${LICENSE_FILES}
DESTINATION licenses
)
# The batch file launcher
install(FILES
distri/winlaunch.bat
DESTINATION "/"
)
endif()
if(APPLE)
set(CMAKE_OSX_DEPLOYMENT_TARGET 10.15)
set(ENV{MACOSX_DEPLOYMENT_TARGET} 10.15)
set_target_properties(${PROJECT_NAME} PROPERTIES
BUNDLE True
OUTPUT_NAME "DB Browser for SQLite"
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_SOURCE_DIR}/src/app.plist
)
endif()
# CPack configuration
set(CPACK_STRIP_FILES ON)
set(CPACK_DEBIAN_PACKAGE_PRIORITY optional)
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON)
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Tristan Stenner <dbbrowser@nicht.dienstli.ch>")
set(CPACK_ARCHIVE_COMPONENT_INSTALL ON)
if(APPLE)
set(CPACK_DEFAULT_GEN TBZ2)
elseif(WIN32)
set(CPACK_DEFAULT_GEN ZIP)
set(CPACK_NSIS_MODIFY_PATH ON)
set(CPACK_WIX_CMAKE_PACKAGE_REGISTRY ON)
set(CPACK_WIX_UPGRADE_GUID "78c885a7-e9c8-4ded-9b62-9abe47466950")
elseif(UNIX)
set(CPACK_DEFAULT_GEN DEB)
set(CPACK_SET_DESTDIR 1)
set(CPACK_INSTALL_PREFIX "/usr")
endif()
set(CPACK_GENERATOR ${CPACK_DEFAULT_GEN} CACHE STRING "CPack pkg type(s) to generate")
include(CPack)
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/kunkk1/sqlitebrowser.git
git@gitee.com:kunkk1/sqlitebrowser.git
kunkk1
sqlitebrowser
sqlitebrowser
master

搜索帮助