From 1f85a65078815b56bbb5581675b4f6e3253d8d9f Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Thu, 25 Oct 2018 12:47:39 +0200 Subject: Remove CMakeLists --- doc/Building.asciidoc | 64 ++++++++++++++++++++++++++------------------------- doc/CMakeLists.txt | 12 ---------- 2 files changed, 33 insertions(+), 43 deletions(-) delete mode 100644 doc/CMakeLists.txt (limited to 'doc') diff --git a/doc/Building.asciidoc b/doc/Building.asciidoc index 431d1e7..f1927de 100644 --- a/doc/Building.asciidoc +++ b/doc/Building.asciidoc @@ -13,11 +13,19 @@ | Version 1.66 | Components: program_options -| cmake -| Version 3.10 -| Anything supporting modern cmake +| link:https://mesonbuild.com/[meson] +| Version 0.48 +| -| Compiler +| ninja +| +| Requirement of meson + +| python3 +| +| Requirement both of meson, and some scripts in tools/ + +| A compiler | C++17 support | gcc 7+; clang 4+; on Windows only MSVC is supported due to QtWebEngine @@ -36,43 +44,37 @@ generate a makefile, build the program and install it. # clone the repository git clone https://neueland.iserlohn-fortress.net/gitea/aqua/smolbote.git smolbote.git cd smolbote.git + +# These two submodules are required git submodule init git submodule update 3rd-party/SingleApplication/SingleApplication.git +git submodule update tools/Kconfiglib +# generate build.ninja +mkdir build +meson build -# generate makefile -mkdir build && cd build -cmake -DCMAKE_BUILD_TYPE=Release .. - -# make && make install -make -j4 -make install +# make +ninja ---- -You can also use ccmake (cmake curses interface) or cmake-gui. +=== Configuring smolbote +smolbote uses Kconfig to store and customize default application settings such +as keyboard shortcuts and paths. You can edit these settings by running +`tools/Kconfiglib/menuconfig.py` in the repository root. -=== vendor.cmake -vendor.cmake contains various settings to customize the way in which the program -functions. The available options and their values may change with revisions. -When changing vendor.cmake, make sure to have all values defined in the preset. +When building, tools/config.py is used to load `platform-name/.config` and +generate a header file. - -DVendor=path/to/custom-vendor.cmake +=== Configuring meson +Run `meson configure` in the build directory to list available options. -=== Compiler flags -cmake does not set any C++ flags by default, including no optimization flags. -You need to set these yourself if your build system doesn't set any either. +Use `meson configure -Doption=value` change them. Ninja will regenerate its +build file on next run. -- On gcc/clang, no optimize flags are set by default, setting at least -O2 is -recommended; check vendor.cmake. - -=== Install prefix (`-DCMAKE_INSTALL_PREFIX`) -Sets the install location prefix. Install targets are only set on Release builds. - -- windows: Binary is written to bin/, and plugins to bin/plugins. -- others: Binary will be written to bin/, and plugins to lib/smolbote/. - -// Using Breakpad -include::Building/Breakpad.asciidoc[] +See the link:https://mesonbuild.com/Quick-guide.html[meson documentation] for +more information on how to use meson. // Compiling on Windows include::Building/Windows.asciidoc[] + diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt deleted file mode 100644 index c1a5bf2..0000000 --- a/doc/CMakeLists.txt +++ /dev/null @@ -1,12 +0,0 @@ -if(UNIX) - -add_custom_target(manpage - BYPRODUCTS "${PROJECT_BINARY_DIR}/doc/smolbote.7.gz" - COMMAND "asciidoctor" "--backend=manpage" "--out-file=${PROJECT_BINARY_DIR}/doc/smolbote.7" "${PROJECT_SOURCE_DIR}/doc/smolbote.7.asciidoc" - COMMAND "gzip" "--force" "${PROJECT_BINARY_DIR}/doc/smolbote.7" - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/doc -) - -install(FILES "${PROJECT_BINARY_DIR}/doc/smolbote.7.gz" DESTINATION man/man7 CONFIGURATIONS Release OPTIONAL) - -endif(UNIX) -- cgit v1.2.1