From 8cbc13a106a680e7e1ce97e2e49bb85eb80e9d8f Mon Sep 17 00:00:00 2001 From: Peinthor Rene Date: Sun, 12 Apr 2015 19:59:04 +0200 Subject: [PATCH] cmake: support for msvc2013 builds and installers --- CMakeLists.txt | 60 +++++++++++++++++++++++++++++++++++++++++++------ src/csvparser.h | 1 + src/sqlitedb.h | 1 + 3 files changed, 55 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8cdedc84..e402e62f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,6 +7,20 @@ if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Release") endif() +if(WIN32 AND MSVC) + if(CMAKE_CL_64) + set(QT5_PATH "E:/Qt64/Qt5.4.1/5.4/msvc2013_64") + set(SQLITE3_PATH "E:/libs/sqlite3_x64") + set(OPENSSL_PATH "E:/libs/openssl-1.0.2a-x64_86-win64") + else() + set(QT5_PATH "E:/Qt/Qt5.4.1/5.4/msvc2013") + set(SQLITE3_PATH "E:/libs/sqlite3") + set(OPENSSL_PATH "E:/libs/openssl-1.0.2a-i386-win32") + endif() + set(USE_QT5 TRUE) + set(CMAKE_PREFIX_PATH "${QT5_PATH};${SQLITE3_PATH}") +endif() + set(ANTLR_DIR libs/antlr-2.7.7) set(QHEXEDIT_DIR libs/qhexedit) set(QCUSTOMPLOT_DIR libs/qcustomplot-source) @@ -154,7 +168,7 @@ if(WIN32) 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") + set(SQLB_SRC ${SQLB_SRC} "${CMAKE_CURRENT_SOURCE_DIR}/src/winapp.rc") ENDIF( MINGW ) endif(WIN32) @@ -180,6 +194,12 @@ else(EXTRAPATH) find_library(LIBSQLITE ${LIBSQLITE_NAME}) endif(EXTRAPATH) +if(WIN32 AND MSVC) + find_path(SQLITE3_INCLUDE_DIR sqlite3.h) + find_file(SQLITE3_DLL sqlite3.dll) + include_directories(${SQLITE3_INCLUDE_DIR}) +endif() + include_directories( "${CMAKE_CURRENT_BINARY_DIR}" ${ANTLR_DIR} @@ -217,21 +237,47 @@ target_link_libraries(${PROJECT_NAME} ${LIBSQLITE} ${ADDITIONAL_LIBS}) +if(WIN32 AND MSVC) + 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") + set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup") + set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS_MINSIZEREL "/SUBSYSTEM:WINDOWS") +endif() + install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin LIBRARY DESTINATION lib) if(UNIX AND NOT APPLE) -install(FILES src/icons/${PROJECT_NAME}.png - DESTINATION share/icons/hicolor/256x256/apps/) + install(FILES src/icons/${PROJECT_NAME}.png + DESTINATION share/icons/hicolor/256x256/apps/) -install(FILES distri/${PROJECT_NAME}.desktop - DESTINATION share/applications/) + install(FILES distri/${PROJECT_NAME}.desktop + DESTINATION share/applications/) -install(FILES distri/${PROJECT_NAME}.desktop.appdata.xml - DESTINATION share/appdata/) + install(FILES distri/${PROJECT_NAME}.desktop.appdata.xml + DESTINATION share/appdata/) endif(UNIX AND NOT APPLE) +if(WIN32 AND MSVC) + set(QT5_BIN_PATH ${QT5_PATH}/bin) + 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}/icudt53.dll + ${QT5_BIN_PATH}/icuin53.dll + ${QT5_BIN_PATH}/icuuc53.dll + ${SQLITE3_DLL} + ${OPENSSL_PATH}/libeay32.dll + ${OPENSSL_PATH}/ssleay32.dll + DESTINATION bin) +endif() + #cpack set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "DB Browser for SQLite") set(CPACK_PACKAGE_VENDOR "oldsch00l") diff --git a/src/csvparser.h b/src/csvparser.h index c3e6af8f..062a79d7 100644 --- a/src/csvparser.h +++ b/src/csvparser.h @@ -4,6 +4,7 @@ #include #include #include +#include class QTextStream; diff --git a/src/sqlitedb.h b/src/sqlitedb.h index bf57812c..d45ca257 100644 --- a/src/sqlitedb.h +++ b/src/sqlitedb.h @@ -6,6 +6,7 @@ #include #include #include +#include class sqlite3; class CipherDialog;