diff options
| author | Akshay Nair <phenax5@gmail.com> | 2025-04-06 21:43:58 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2025-04-06 21:43:58 +0530 |
| commit | 762ac5a2bc8902fb22fa7005a136ed07c2e2cdfc (patch) | |
| tree | 4dd34c35b1f41521a4792be839b8355cb5d4a899 | |
| parent | fec0d51acfc967e32d1dfb25eec4e6ab2e0bcc30 (diff) | |
| download | null-browser-762ac5a2bc8902fb22fa7005a136ed07c2e2cdfc.tar.gz null-browser-762ac5a2bc8902fb22fa7005a136ed07c2e2cdfc.zip | |
Switch to ninja in cmake + add ccache
Diffstat (limited to '')
| -rw-r--r-- | CMakeLists.txt | 25 | ||||
| -rw-r--r-- | Makefile | 7 | ||||
| -rw-r--r-- | flake.nix | 18 |
3 files changed, 30 insertions, 20 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index dc6c9e1..08bf560 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,10 +11,9 @@ set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(AUTOMOC ON) set(PKG_CONFIG_USE_STATIC_LIBS ON) -find_package(PkgConfig REQUIRED) - set(CMAKE_INSTALL_RPATH "$ORIGIN/../lib") set(CMAKE_BUILD_WITH_INSTALL_RPATH ON) +find_package(PkgConfig REQUIRED) # message(COMMENT "${CMAKE_INSTALL_PREFIX} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}") @@ -25,14 +24,6 @@ endif() set(PROJECT_LUA_PATH "${NULL_LUA_PREFIX}/?.lua") add_compile_definitions(PROJECT_LUA_PATH="${PROJECT_LUA_PATH}") -if(DEFINED ENV{RELEASE}) - set(CMAKE_BUILD_TYPE Release) - set(CMAKE_CXX_FLAGS "-O3 ${CMAKE_CXX_FLAGS}") -elseif(DEFINED ENV{DEBUG}) - set(CMAKE_BUILD_TYPE Debug) - set(CMAKE_CXX_FLAGS_DEBUG "-g ${CMAKE_CXX_FLAGS}") -endif() - # Source file(GLOB_RECURSE SOURCE_FILES src/*.cpp) list(FILTER SOURCE_FILES EXCLUDE REGEX "src/main.cpp$") @@ -44,6 +35,20 @@ add_executable(${PROJECT}) target_sources(${PROJECT} PRIVATE src/main.cpp ${SOURCE_FILES}) target_include_directories(${PROJECT} PRIVATE src/) + +# Env config +if(DEFINED ENV{RELEASE}) + set(CMAKE_BUILD_TYPE Release) + set(CMAKE_CXX_FLAGS "-O3 ${CMAKE_CXX_FLAGS}") +elseif(DEFINED ENV{DEBUG}) + set(CMAKE_BUILD_TYPE Debug) + set(CMAKE_CXX_FLAGS_DEBUG "-g ${CMAKE_CXX_FLAGS}") + set(CMAKE_CXX_COMPILER_LAUNCHER ccache) +else() + set(CMAKE_CXX_COMPILER_LAUNCHER ccache) +endif() + + # Qt find_package(Qt6 REQUIRED COMPONENTS Core Widgets WebEngineWidgets Test) qt_standard_project_setup() @@ -8,9 +8,10 @@ LUA_PREFIX = "" build-source: @mkdir -p build @cd build/ && cmake .. \ + -G Ninja \ -DNULL_LUA_PREFIX="${LUA_PREFIX}" \ -DCMAKE_INSTALL_PREFIX="${PREFIX}" \ - && make -j8 + && cmake --build . -j10 dev-setup: @cp build/compile_commands.json . @@ -27,6 +28,7 @@ test: build-source cd build && QT_QPA_PLATFORM=offscreen ctest -V clean: + ccache -C || true rm -rf build/ rm -f compile_commands.json @@ -41,3 +43,6 @@ check: clang-format -i ./src/**/*.{hpp,cpp} clang-tidy --config-file=.clang-tidy ./src/**/*.{hpp,cpp} +# appimage: +# nix bundle --bundler github:ralismark/nix-appimage + @@ -32,17 +32,16 @@ devShells.default = pkgs.mkShell rec { buildInputs = with pkgs; [ cmake + ninja gnumake clang-tools pkg-config + ccache gdb valgrind ] ++ dependencies; - nativeBuildInputs = with pkgs; [gobject-introspection]; - LD_LIBRARY_PATH = "${pkgs.lib.makeLibraryPath buildInputs}"; - FOOBARITY = "${myPkgs.lua-libluv}"; }; packages.default = pkgs.stdenv.mkDerivation { @@ -50,17 +49,18 @@ version = "0.0.0"; src = ./.; - buildInputs = [ - myPkgs.qt.qtbase - ] ++ dependencies; - - NIX_CFLAGS_COMPILE = "-DRELEASE=1"; - + buildInputs = dependencies; nativeBuildInputs = with pkgs; [ cmake + ninja myPkgs.qt.wrapQtAppsHook pkg-config ]; + dontUseCmakeConfigure = true; + buildPhase = ''make build PREFIX=$out''; + installPhase = ''make install PREFIX=$out''; + + meta.mainProgram = "null-browser"; }; }); } |
