|
@@ -1,5 +1,5 @@
|
|
|
cmake_minimum_required(VERSION 3.16)
|
|
|
-project(notepad--)
|
|
|
+project(NotePad-- VERSION 1.22.0)
|
|
|
|
|
|
set(CMAKE_AUTOMOC ON)
|
|
|
set(CMAKE_AUTOUIC ON)
|
|
@@ -7,49 +7,84 @@ set(CMAKE_AUTORCC ON)
|
|
|
|
|
|
find_package(Qt5 REQUIRED COMPONENTS Core Gui Widgets Concurrent Network PrintSupport XmlPatterns)
|
|
|
|
|
|
-# TODO: use system provided libraries to build
|
|
|
-# current status: some header can not be found,for example: Scintilla.h
|
|
|
-find_library(QSCINTILLA_LIB_PATH qscintilla2_qt5)
|
|
|
-find_path(QSCINTILLA_INC_PATH qsciscintilla.h PATHS /usr/include/)
|
|
|
-find_path(SCINTILLA_INC_PATH Scintilla.h PATHS /usr/include/)
|
|
|
-if((${QSCINTILLA_LIB_PATH} STREQUAL "QSCINTILLA_LIB_PATH-NOTFOUND") OR
|
|
|
- (${QSCINTILLA_INC_PATH} STREQUAL "QSCINTILLA_INC_PATH-NOTFOUND") OR
|
|
|
- (${SCINTILLA_INC_PATH} STREQUAL "SCINTILLA_INC_PATH-NOTFOUND") )
|
|
|
-set(NOTEPAD_USE_SYS_LIB OFF)
|
|
|
-message("system libraries or header not found,build from local")
|
|
|
+# qscint 关键依赖库
|
|
|
add_subdirectory(${PROJECT_SOURCE_DIR}/src/qscint)
|
|
|
-else()
|
|
|
-set(NOTEPAD_USE_SYS_LIB ON)
|
|
|
-message("use system libraries")
|
|
|
-message("QSCINTILLA_LIB_PATH:" ${QSCINTILLA_LIB_PATH})
|
|
|
-message("QSCINTILLA_INC_PATH:" ${QSCINTILLA_INC_PATH})
|
|
|
-message("SCINTILLA_INC_PATH:" ${SCINTILLA_INC_PATH})
|
|
|
+
|
|
|
+# 插件库包含
|
|
|
+# helloworld 动态插件库
|
|
|
+add_subdirectory(${PROJECT_SOURCE_DIR}/src/plugin/helloworld)
|
|
|
+
|
|
|
+# win下需要开启UNICODE进行支持TCHAR
|
|
|
+if(CMAKE_HOST_WIN32)
|
|
|
+ add_definitions(-D_UNICODE -DUNICODE)
|
|
|
endif()
|
|
|
|
|
|
+
|
|
|
+if(${PLUGIN_EN})
|
|
|
+ if(${PLUGIN_EN} STREQUAL on)
|
|
|
+ add_definitions(-DNO_PLUGIN=1)
|
|
|
+ endif(${PLUGIN_EN})
|
|
|
+endif()
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
file(GLOB UI_SRC ${PROJECT_SOURCE_DIR}/src/*.ui)
|
|
|
set(UI_SRC ${UI_SRC} ${PROJECT_SOURCE_DIR}/src/cceditor/ccnotepad.ui)
|
|
|
aux_source_directory(${PROJECT_SOURCE_DIR}/src SRC)
|
|
|
aux_source_directory(${PROJECT_SOURCE_DIR}/src/cceditor SRC)
|
|
|
|
|
|
-add_executable(${PROJECT_NAME} ${SRC} ${UI_SRC} ${PROJECT_SOURCE_DIR}/src/RealCompare.qrc)
|
|
|
-target_include_directories(${PROJECT_NAME} PRIVATE
|
|
|
+
|
|
|
+if(CMAKE_HOST_WIN32)
|
|
|
+# 添加 WIN32 保证主程序启动没有命令行
|
|
|
+ list(APPEND WIN_RCS ${PROJECT_SOURCE_DIR}/src/RealCompareToMinGw.rc)
|
|
|
+ add_executable(${PROJECT_NAME} WIN32 ${WIN_RCS} ${SRC} ${UI_SRC} ${PROJECT_SOURCE_DIR}/src/RealCompare.qrc)
|
|
|
+else()
|
|
|
+ add_executable(${PROJECT_NAME} ${SRC} ${UI_SRC} ${PROJECT_SOURCE_DIR}/src/RealCompare.qrc)
|
|
|
+endif()
|
|
|
+
|
|
|
+target_include_directories(${PROJECT_NAME} PRIVATE
|
|
|
${PROJECT_SOURCE_DIR}/src
|
|
|
${PROJECT_SOURCE_DIR}/src/cceditor
|
|
|
+
|
|
|
+${PROJECT_SOURCE_DIR}/src/qscint/src
|
|
|
+${PROJECT_SOURCE_DIR}/src/qscint/src/Qsci
|
|
|
+${PROJECT_SOURCE_DIR}/src/qscint/scintilla/src
|
|
|
+${PROJECT_SOURCE_DIR}/src/qscint/scintilla/include
|
|
|
+${PROJECT_SOURCE_DIR}/src/qscint/scintilla/lexlib
|
|
|
+${PROJECT_SOURCE_DIR}/src/qscint/scintilla/boostregex
|
|
|
)
|
|
|
|
|
|
-if(NOTEPAD_USE_SYS_LIB)
|
|
|
-target_include_directories(${PROJECT_NAME} PRIVATE ${QSCINTILLA_INC_PATH} ${SCINTILLA_INC_PATH})
|
|
|
-endif()
|
|
|
+target_link_libraries(${PROJECT_NAME} qscint Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Concurrent Qt5::Network Qt5::PrintSupport Qt5::XmlPatterns)
|
|
|
|
|
|
-target_link_libraries(${PROJECT_NAME} qscintilla2_qt5 Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Concurrent Qt5::Network Qt5::PrintSupport Qt5::XmlPatterns)
|
|
|
+# set(PROJECT_BINARY_DIR "${PROJECT_BINARY_DIR}/bin")
|
|
|
+# set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
|
|
|
|
|
|
-install(
|
|
|
- TARGETS ${PROJECT_NAME}
|
|
|
- DESTINATION "bin"
|
|
|
-)
|
|
|
+if(CMAKE_HOST_UNIX)
|
|
|
+ install(
|
|
|
+ TARGETS ${PROJECT_NAME}
|
|
|
+ DESTINATION "bin"
|
|
|
+ )
|
|
|
+
|
|
|
+ install(DIRECTORY ${PROJECT_SOURCE_DIR}/src/linux/usr
|
|
|
+ DESTINATION "/")
|
|
|
|
|
|
-install(DIRECTORY ${PROJECT_SOURCE_DIR}/src/linux/usr
|
|
|
- DESTINATION "/")
|
|
|
+ include(${PROJECT_SOURCE_DIR}/cmake/deb_package_config.cmake)
|
|
|
+ include(CPack)
|
|
|
+elseif(CMAKE_HOST_WIN32)
|
|
|
+ install(TARGETS ${PROJECT_NAME}
|
|
|
+ DESTINATION "/")
|
|
|
|
|
|
-include(${PROJECT_SOURCE_DIR}/cmake/package_config.cmake)
|
|
|
-include(CPack)
|
|
|
+ install(DIRECTORY ${PROJECT_SOURCE_DIR}/build/bin/
|
|
|
+ DESTINATION "/")
|
|
|
+ # 设置软件版本
|
|
|
+ set(CPACK_PACKAGE_NAME "NotePad--")
|
|
|
+ set(CPACK_PACKAGE_DESCRIPTION "NotePad--")
|
|
|
+ set(CPACK_PACKAGE_COPYRIGHT "Copyright (c) 2023")
|
|
|
+ set(CPACK_PACKAGE_VERSION "1.22.0")
|
|
|
+ set(CPACK_PACKAGE_VERSION_MAJOR "1")
|
|
|
+ set(CPACK_PACKAGE_VERSION_MINOR "22")
|
|
|
+ set(CPACK_PACKAGE_VERSION_PATCH "0")
|
|
|
+
|
|
|
+ include(${PROJECT_SOURCE_DIR}/cmake/nsis_package_config.cmake)
|
|
|
+ include(CPack)
|
|
|
+endif()
|