From 109026211c2b7e1fda489a99b785453d1cfd305a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anna=20=E2=80=9CCyberTailor=E2=80=9D?= Date: Mon, 21 Feb 2022 11:40:33 +0500 Subject: [PATCH 1/3] CMakeLists: add installation target --- CMakeLists.txt | 19 +++++++++++++++++++ packaging/deb/create-deb-pkg.sh | 16 +++++----------- 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2f0deba5c..c425e98b4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,6 +2,8 @@ cmake_minimum_required(VERSION 3.1.0) # Threads::Threads project(fastfetch LANGUAGES C) +include(GNUInstallDirs) + OPTION(ENABLE_LIBPCI "Enable libpci" ON) OPTION(ENABLE_VULKAN "Enable vulkan" ON) OPTION(ENABLE_WAYLAND "Enable wayland-client" ON) @@ -61,6 +63,8 @@ find_package(Threads REQUIRED) find_package(PkgConfig REQUIRED) +# Init CMake targets. + add_library(libfastfetch STATIC src/util/FFstrbuf.c src/util/FFlist.c @@ -267,6 +271,8 @@ target_link_libraries(flashfetch PRIVATE libfastfetch ) +# Testing. + add_executable(fastfetch-test-performance tests/performance.c ) @@ -280,3 +286,16 @@ add_executable(fastfetch-test-strbuf target_link_libraries(fastfetch-test-strbuf PRIVATE libfastfetch ) + +# Installation. + +install(TARGETS fastfetch DESTINATION ${CMAKE_INSTALL_BINDIR}) + +install(FILES completions/bash + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/bash-completion/completions + RENAME ${CMAKE_PROJECT_NAME} +) + +install(DIRECTORY presets + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${CMAKE_PROJECT_NAME} +) diff --git a/packaging/deb/create-deb-pkg.sh b/packaging/deb/create-deb-pkg.sh index 8a6121794..1f7eb87c0 100755 --- a/packaging/deb/create-deb-pkg.sh +++ b/packaging/deb/create-deb-pkg.sh @@ -6,9 +6,9 @@ rm -rf ./build ./fastfetch fastfetch.deb echo "building fastfetch" mkdir build -cd build || exit -cmake ../../.. -cmake --build . --target fastfetch "-j$(nproc)" +cd build || exit 1 +cmake ../../.. || exit 1 +cmake --build . --target fastfetch "-j$(nproc)" || exit 1 echo "generating package contents" # deb versions must start with a number, hence the 1 added before the rXXX @@ -16,18 +16,12 @@ version="0:1$(./fastfetch --version | cut -d ' ' -f2)-0" echo "Using package version: $version" cd .. +cmake --install build --prefix fastfetch/usr || exit 1 mkdir -p fastfetch/DEBIAN sed "s//$version/g" control-template > fastfetch/DEBIAN/control -mkdir -p fastfetch/usr/bin -cp build/fastfetch fastfetch/usr/bin/ -mkdir -p fastfetch/usr/share/bash-completion/completions -cp ../../completions/bash fastfetch/usr/share/bash-completion/completions/fastfetch -mkdir -p fastfetch/usr/share/fastfetch/ -cp -r ../../presets fastfetch/usr/share/fastfetch/ - echo "building package" -dpkg-deb --build fastfetch +dpkg-deb --build fastfetch || exit 1 echo "package built." echo "cleaning up" rm -rf build fastfetch From 415c09748934637332b90d2dddedfb56603bc152 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anna=20=E2=80=9CCyberTailor=E2=80=9D?= Date: Mon, 21 Feb 2022 11:54:14 +0500 Subject: [PATCH 2/3] CMakeLists.txt: use git only when in repository Allow building fastfetch from tarballs with -DPROJECT_VERSION and -DPROJECT_VERSION_MAJOR options. --- CMakeLists.txt | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c425e98b4..843ebdd7a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,21 +24,25 @@ endif() set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wconversion") set(CMAKE_EXE_LINKER_FLAGS_RELEASE "-Wl,-O3") -execute_process( - COMMAND git rev-list --count HEAD - WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" - OUTPUT_VARIABLE GIT_REV_LIST - OUTPUT_STRIP_TRAILING_WHITESPACE -) -execute_process( - COMMAND git rev-parse --short HEAD - WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" - OUTPUT_VARIABLE GIT_REV_PARSE - OUTPUT_STRIP_TRAILING_WHITESPACE -) +set(PROJECT_VERSION "r0.0" CACHE STRING "Full version") +set(PROJECT_VERSION_MAJOR "0" CACHE STRING "Major version") +if (EXISTS "${CMAKE_SOURCE_DIR}/.git") + execute_process( + COMMAND git rev-list --count HEAD + WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" + OUTPUT_VARIABLE GIT_REV_LIST + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + execute_process( + COMMAND git rev-parse --short HEAD + WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" + OUTPUT_VARIABLE GIT_REV_PARSE + OUTPUT_STRIP_TRAILING_WHITESPACE + ) -set(PROJECT_VERSION "r${GIT_REV_LIST}.${GIT_REV_PARSE}") -set(PROJECT_VERSION_MAJOR "${GIT_REV_LIST}") + set(PROJECT_VERSION "r${GIT_REV_LIST}.${GIT_REV_PARSE}") + set(PROJECT_VERSION_MAJOR "${GIT_REV_LIST}") +endif() function(fastfetch_load_text FILENAME OUTVAR) file(READ "${FILENAME}" TEMP) From aa9dd9c155c2f5aa3d4597f748ff509feff4215a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anna=20=E2=80=9CCyberTailor=E2=80=9D?= Date: Mon, 21 Feb 2022 12:22:29 +0500 Subject: [PATCH 3/3] CMakeLists.txt: make tests optional Run test-strbuf using ctest. --- .github/workflows/fastfetch-check.yml | 4 ++-- CMakeLists.txt | 30 ++++++++++++++++----------- tests/strbuf.sh | 6 ------ 3 files changed, 20 insertions(+), 20 deletions(-) delete mode 100755 tests/strbuf.sh diff --git a/.github/workflows/fastfetch-check.yml b/.github/workflows/fastfetch-check.yml index f8cc5f11b..305e7ce15 100644 --- a/.github/workflows/fastfetch-check.yml +++ b/.github/workflows/fastfetch-check.yml @@ -45,8 +45,8 @@ jobs: - name: Run flashfetch run: ./flashfetch - - name: Run fastfetch-test-strbuf - run: ./fastfetch-test-strbuf + - name: Run tests + run: ctest - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v1 diff --git a/CMakeLists.txt b/CMakeLists.txt index 843ebdd7a..e645ab98f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,6 +16,7 @@ OPTION(ENABLE_DCONF "Enable dconf" ON) OPTION(ENABLE_DBUS "Enable dbus-1" ON) OPTION(ENABLE_XFCONF "Enable libxfconf-0" ON) OPTION(ENABLE_RPM "Enable rpm" ON) +OPTION(BUILD_TESTS "Build tests" ON) if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Release) @@ -277,19 +278,24 @@ target_link_libraries(flashfetch # Testing. -add_executable(fastfetch-test-performance - tests/performance.c -) -target_link_libraries(fastfetch-test-performance - PRIVATE libfastfetch -) +if (BUILD_TESTS) + add_executable(fastfetch-test-performance + tests/performance.c + ) + target_link_libraries(fastfetch-test-performance + PRIVATE libfastfetch + ) -add_executable(fastfetch-test-strbuf - tests/strbuf.c -) -target_link_libraries(fastfetch-test-strbuf - PRIVATE libfastfetch -) + add_executable(fastfetch-test-strbuf + tests/strbuf.c + ) + target_link_libraries(fastfetch-test-strbuf + PRIVATE libfastfetch + ) + + enable_testing() + add_test(NAME test-strbuf COMMAND fastfetch-test-strbuf) +endif() # Installation. diff --git a/tests/strbuf.sh b/tests/strbuf.sh deleted file mode 100755 index 93ae379ff..000000000 --- a/tests/strbuf.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/env sh -mkdir -p build/ -cd build -cmake .. -cmake --build . --target fastfetch-test-strbuf -j$(nproc) -./fastfetch-test-strbuf "$@"