From e19fb8d2620f841b4266cbeeccd0939aa06271ed Mon Sep 17 00:00:00 2001 From: coconil Date: Thu, 2 Feb 2023 18:05:54 +0800 Subject: [PATCH] try use system package first,add archlinux doc --- CMakeLists.txt | 29 +++++++++++++++++++++-------- README.md | 18 ++++++++++++++++++ cmake.md | 9 --------- 3 files changed, 39 insertions(+), 17 deletions(-) delete mode 100644 cmake.md diff --git a/CMakeLists.txt b/CMakeLists.txt index 791fd07..5019618 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,8 +7,24 @@ 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} EQUAL "QSCINTILLA_LIB_PATH-NOTFOUND") OR + (${QSCINTILLA_INC_PATH} EQUAL "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") 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}) +endif() file(GLOB UI_SRC ${PROJECT_SOURCE_DIR}/src/*.ui) set(UI_SRC ${UI_SRC} ${PROJECT_SOURCE_DIR}/src/cceditor/ccnotepad.ui) @@ -19,15 +35,12 @@ add_executable(${PROJECT_NAME} ${SRC} ${UI_SRC} ${PROJECT_SOURCE_DIR}/src/RealCo 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} qscintilla2_qt5 Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Concurrent Qt5::Network Qt5::PrintSupport Qt5::XmlPatterns) install( diff --git a/README.md b/README.md index 38a4aa5..e0ff4f5 100755 --- a/README.md +++ b/README.md @@ -21,6 +21,24 @@ NDD已初步推出插件编写功能,希望广大的CPP/QT开发者加入我 ![输入图片说明](6688.png) +**Linux编译说明:** + +## Ubuntu + +1. 安装编译环境 `sudo apt-get install g++ make cmake` +1. 安装qt工具和库 `sudo apt-get install qtbase5-dev qt5-qmake qtbase5-dev-tools libqt5printsupport5 libqt5xmlpatterns5-dev ` +1. 配置 `cmake -B build -DCMAKE_BUILD_TYPE=Release` +1. 编译 `cd build && make -j` +1. 打包 `cpack` + +## ArchLinux + +1. 安装编译环境 `sudo pacman -S gcc cmake make ` +1. 安装qt工具和库 `sudo pacman -S qt5-tools qt5-base qt5-xmlpatterns ` +1. 配置 `cmake -B build -DCMAKE_BUILD_TYPE=Release` +1. 编译 `cd build && make -j` +1. 打包:使用aur + **编译说明:** 1)使用qtcreator 或 vs 先打开qscint/src/qscintilla.pro 。先编译出这个qscintlla的依赖库。 diff --git a/cmake.md b/cmake.md deleted file mode 100644 index 2bd52cc..0000000 --- a/cmake.md +++ /dev/null @@ -1,9 +0,0 @@ -# cmake构建说明 - -## Ubuntu - -1. 安装编译环境 `sudo apt-get install g++ make cmake` -1. 安装qt工具和库 `sudo apt-get install qtbase5-dev qt5-qmake qtbase5-dev-tools libqt5printsupport5 libqt5xmlpatterns5-dev ` -1. 配置 `cmake path_to_src` -1. 编译 `make -j` -1. 打包 `cpack`