btop/Makefile
aristocratos 934a9e3cf2 Squashed commit of the following:
commit 285fb215d1
Author: aristocratos <gnmjpl@gmail.com>
Date:   Thu Dec 28 13:10:18 2023 +0100

    Proc::draw() -> Use std::erase_if() instead of for loops

commit 2fba934cde
Author: aristocratos <gnmjpl@gmail.com>
Date:   Wed Dec 27 00:54:28 2023 +0100

    Fixed leftover code in GPU init logging false errors

commit ad14554f32
Author: aristocratos <gnmjpl@gmail.com>
Date:   Tue Dec 26 19:32:43 2023 +0100

    Try alternative names for GPU libraries during GPU init

commit a8fda16bf6
Merge: e15e0b7 2796af3
Author: Jakob P. Liljenberg <admin@qvantnet.com>
Date:   Tue Dec 26 19:19:14 2023 +0100

    Merge pull request #696 from aristocratos/map_safety

commit 2796af3f37
Author: aristocratos <gnmjpl@gmail.com>
Date:   Tue Dec 26 19:18:37 2023 +0100

    Document DEBUG flag for Makefile

commit f484326bf2
Merge: b4eb397 e15e0b7
Author: aristocratos <gnmjpl@gmail.com>
Date:   Tue Dec 26 19:11:26 2023 +0100

    Merge branch 'main' into map_safety

commit b4eb397fc6
Author: aristocratos <gnmjpl@gmail.com>
Date:   Mon Dec 25 10:52:52 2023 +0100

    Fix errors

commit 3c04a7a380
Author: aristocratos <gnmjpl@gmail.com>
Date:   Mon Dec 25 10:41:15 2023 +0100

    Added more checks and debug logging

commit 8b81c4a4ec
Author: aristocratos <gnmjpl@gmail.com>
Date:   Mon Dec 25 03:28:35 2023 +0100

    Return const refs

commit f836233b64
Author: aristocratos <gnmjpl@gmail.com>
Date:   Mon Dec 25 02:49:24 2023 +0100

    Remove robin_hood.h

commit 3a8ceacaf8
Author: aristocratos <gnmjpl@gmail.com>
Date:   Mon Dec 25 02:37:32 2023 +0100

    Fix call to compact and missing utility include

commit e15e0b7188
Author: aristocratos <gnmjpl@gmail.com>
Date:   Mon Dec 25 02:27:38 2023 +0100

    Revert "Replace robin_hood map and set with STD alternative and add safeVal() function for map/vector access with fallback"

    This reverts commit 6c87ab6196.

commit ced47a960f
Author: aristocratos <gnmjpl@gmail.com>
Date:   Mon Dec 25 02:26:13 2023 +0100

    Replace robin_hood map and set with STD alternative and add safeVal() function for map/vector access with fallback

commit 6c87ab6196
Author: aristocratos <gnmjpl@gmail.com>
Date:   Mon Dec 25 02:16:15 2023 +0100

    Replace robin_hood map and set with STD alternative and add safeVal() function for map/vector access with fallback

commit a2325371d4
Merge: aab2e8c b598f02
Author: Jakob P. Liljenberg <admin@qvantnet.com>
Date:   Sun Dec 17 19:56:31 2023 +0100

    Merge pull request #690 from aristocratos/osx-fix

commit b598f02468
Merge: b1fe377 aab2e8c
Author: Jakob P. Liljenberg <admin@qvantnet.com>
Date:   Sun Dec 17 12:06:39 2023 +0100

    Merge branch 'main' into osx-fix

commit aab2e8cc55
Author: Jakob P. Liljenberg <admin@qvantnet.com>
Date:   Sun Dec 17 12:03:47 2023 +0100

    Fixed test-snap-can-build.yml

commit b1fe3779e1
Merge: 7805242 2d15c41
Author: Jakob P. Liljenberg <admin@qvantnet.com>
Date:   Sun Dec 17 11:56:14 2023 +0100

    Merge branch 'main' into osx-fix

commit 2d15c41555
Merge: fe699b4 2d3e453
Author: Jakob P. Liljenberg <admin@qvantnet.com>
Date:   Sun Dec 17 11:54:49 2023 +0100

    Merge pull request #684 from kz6fittycent/main

commit 2d3e453ed5
Merge: 0a38864 fe699b4
Author: kz6fittycent <jimmy.tigert@gmail.com>
Date:   Fri Dec 15 12:02:11 2023 -0600

    Merge branch 'main' into main

commit 0a388647cc
Author: kz6fittycent <jimmy.tigert@gmail.com>
Date:   Fri Dec 15 12:01:45 2023 -0600

    Update test-snap-can-build.yml

    whoops

commit 49f425f356
Author: kz6fittycent <jimmy.tigert@gmail.com>
Date:   Fri Dec 15 12:00:48 2023 -0600

    Update test-snap-can-build.yml

    https://github.com/aristocratos/btop/pull/684#issuecomment-1852801811

commit 780524267f
Author: Jos Dehaes <jos.dehaes@gmail.com>
Date:   Fri Dec 15 09:02:57 2023 +0100

    conditional compile on Big Sur and up

commit fe699b4333
Author: aristocratos <gnmjpl@gmail.com>
Date:   Tue Dec 12 23:20:09 2023 +0100

    Version bump to 1.3.0 in preparation for upcoming release

commit 2d2df23198
Merge: d7b581e b71538e
Author: aristocratos <gnmjpl@gmail.com>
Date:   Tue Dec 12 23:19:31 2023 +0100

    Merge branch 'main' of github.com:aristocratos/btop

commit d7b581eda4
Author: aristocratos <gnmjpl@gmail.com>
Date:   Tue Dec 12 23:17:36 2023 +0100

    Updated changes

commit b71538eabe
Merge: a017056 730af5d
Author: Jakob P. Liljenberg <admin@qvantnet.com>
Date:   Tue Dec 12 23:07:39 2023 +0100

    Merge pull request #666 from muneebmahmed/macos-clang

commit 730af5d4e1
Merge: 0246b1b a017056
Author: Jakob P. Liljenberg <admin@qvantnet.com>
Date:   Tue Dec 12 23:05:52 2023 +0100

    Merge branch 'main' into macos-clang

commit a017056ea0
Author: aristocratos <gnmjpl@gmail.com>
Date:   Tue Dec 12 23:05:07 2023 +0100

    Added swap to ignore for statvfs() since it will always fail

commit e770cccaf8
Author: aristocratos <gnmjpl@gmail.com>
Date:   Tue Dec 12 22:55:48 2023 +0100

    Added try->catch for get_zfs_stat_file() to avoid fs error

commit 0246b1b971
Author: Muneeb Ahmed <32603485+muneebmahmed@users.noreply.github.com>
Date:   Mon Nov 20 12:18:40 2023 -0800

    Enable macos clang

    Apple clang uses different versioning from LLVM, so 15.0.0 is compatible

commit 6282f36f8f
Merge: cfd20a3 be73160
Author: Jakob P. Liljenberg <admin@qvantnet.com>
Date:   Tue Dec 12 22:06:02 2023 +0100

    Merge pull request #675 from imwints/cmake

commit be731600f1
Merge: f4b14ce cfd20a3
Author: Jakob P. Liljenberg <admin@qvantnet.com>
Date:   Tue Dec 12 22:01:21 2023 +0100

    Merge branch 'main' into cmake

commit 450b59b657
Merge: 875f08b cfd20a3
Author: Jakob P. Liljenberg <admin@qvantnet.com>
Date:   Tue Dec 12 21:55:27 2023 +0100

    Merge branch 'main' into main

commit cfd20a374b
Merge: 14e664e b6a8696
Author: Jakob P. Liljenberg <admin@qvantnet.com>
Date:   Tue Dec 12 21:48:55 2023 +0100

    Merge pull request #677 from imwints/cpu-model

commit b6a86962e2
Merge: 8096433 14e664e
Author: Jakob P. Liljenberg <admin@qvantnet.com>
Date:   Tue Dec 12 21:47:01 2023 +0100

    Merge branch 'main' into cpu-model

commit 14e664e756
Merge: 0d35746 5902484
Author: Jakob P. Liljenberg <admin@qvantnet.com>
Date:   Tue Dec 12 21:41:55 2023 +0100

    Merge pull request #679 from masiboss/main

commit 875f08ba5e
Author: kz6fittycent <jimmy.tigert@gmail.com>
Date:   Tue Dec 12 14:27:16 2023 -0600

    Update snapcraft.yaml - opengl

    - Testing opengl plug

commit 3ee4b18e57
Author: kz6fittycent <jimmy.tigert@gmail.com>
Date:   Tue Dec 12 14:14:59 2023 -0600

    Update bug_report.md

      - added snap info for bug reports to delineate

commit 2973a76f2b
Merge: fb782a2 0d35746
Author: kz6fittycent <jimmy.tigert@gmail.com>
Date:   Tue Dec 12 14:06:44 2023 -0600

    Merge branch 'aristocratos:main' into main

commit fb782a2ab3
Author: kz6fittycent <jimmy.tigert@gmail.com>
Date:   Tue Dec 12 14:02:27 2023 -0600

    Create test-snap-can-build.yml

commit 5902484f39
Author: masiboss <32394683+masiboss@users.noreply.github.com>
Date:   Thu Dec 7 21:42:11 2023 +0100

    simplify removal of "Apple"

commit 5beb9e12e5
Author: masiboss <32394683+masiboss@users.noreply.github.com>
Date:   Thu Dec 7 20:56:40 2023 +0100

    in case apple decides to add another suffix to the cpu name

commit 1b2f11b412
Author: masiboss <32394683+masiboss@users.noreply.github.com>
Date:   Thu Dec 7 20:49:34 2023 +0100

    cut less of cpu name if frequency is not shown

commit bcf4ad8ab6
Author: masiboss <32394683+masiboss@users.noreply.github.com>
Date:   Thu Dec 7 19:50:12 2023 +0100

    fix array out of bounds on regular m chip

commit aeefcacbc9
Author: masiboss <32394683+masiboss@users.noreply.github.com>
Date:   Thu Dec 7 19:34:11 2023 +0100

    fix cpu version not included

commit 23698940df
Author: masiboss <32394683+masiboss@users.noreply.github.com>
Date:   Thu Dec 7 19:23:58 2023 +0100

    strip "Apple" from name of Apple silicon chips

commit 8096433736
Author: Steffen Winter <steffen.winter@proton.me>
Date:   Tue Dec 5 02:34:24 2023 +0100

    Fix printed model name for older Intel CPU

commit f4b14ce97e
Author: Steffen Winter <steffen.winter@proton.me>
Date:   Tue Dec 5 01:00:14 2023 +0100

    Add CMake compile instructions for macOS

commit 97b35d9720
Author: Steffen Winter <steffen.winter@proton.me>
Date:   Sat Dec 2 00:35:13 2023 +0100

    Add cmake workflow for all platforms

commit e35538fa29
Author: Steffen Winter <steffen.winter@proton.me>
Date:   Sat Dec 2 00:34:32 2023 +0100

    Patch RPATH on FreeBSD, support OSX and format

commit 0d357468b5
Merge: ebc46ca 00f58b6
Author: Jakob P. Liljenberg <admin@qvantnet.com>
Date:   Fri Dec 1 22:52:51 2023 +0100

    Merge pull request #674 from imwints/bsd-workflow

    Provide FreeBSD static release binaries

commit 00f58b6228
Author: Steffen Winter <steffen.winter@proton.me>
Date:   Thu Nov 30 23:07:52 2023 +0100

    Provide FreeBSD static release binaries

    Bumps vmaction@freesdb-vm to version 1 which runs on Linux and doesn't
    hang all the time. Also uses clang for full static compilation

commit ebc46ca12c
Author: Jakob P. Liljenberg <admin@qvantnet.com>
Date:   Mon Nov 27 18:21:42 2023 +0100

    Clean up compile instructions

commit d1384c9341
Merge: 2b0cc37 6f12e35
Author: Jakob P. Liljenberg <admin@qvantnet.com>
Date:   Mon Nov 27 17:53:39 2023 +0100

    Merge pull request #671 from imwints/cmake-gpu

    Bring GPU support to CMake and improve how Make handles the ROCm library build

commit 6f12e3555d
Author: Steffen Winter <steffen.winter@proton.me>
Date:   Mon Nov 27 00:33:11 2023 +0100

    Properly invoke CMake to build ROCm

    * Build an optimized library by default
    * Only build the library target
    * ROCm is build with debug symbols when `make DEBUG=true`
    * Enable LTO
    * Use the more generic CMake build command instead of calling make
      directly, this always uses all cores by default and makes it easier to
      switch to another generator e.g. Ninja
    * Use a variable to store the ROCm source directory. The directory can
      be changed with `make ROCM_DIR=<dir>`
    * The static library is now directly linked by CMake and not created off
      of the object files from a shared library build
    * The C++ compiler used to compile btop is now used to compile ROCm to
      avoid name mangling when `CXX` from the environment and `make CXX=`
      differ
    * CMake is invoked from btop's root directory

commit 0585bc9cfb
Author: Steffen Winter <steffen.winter@proton.me>
Date:   Mon Nov 27 00:31:10 2023 +0100

    Suppress all output from ROCm build

    Similar to including external include files with `-isystem`, ignore
    output from ROCm build since these warnings aren't a concern here

commit 831be262b0
Author: Steffen Winter <steffen.winter@proton.me>
Date:   Mon Nov 27 00:29:14 2023 +0100

    Remove ROCm object files with `make clean/distclean`

commit 2f59e61d87
Author: Steffen Winter <steffen.winter@proton.me>
Date:   Sun Nov 26 22:56:58 2023 +0100

    Add GPU options for cmake based builds

commit 7588d96dd4
Author: Steffen Winter <steffen.winter@proton.me>
Date:   Sun Nov 26 21:40:29 2023 +0100

    Add check for <ranges> header

commit ebbb769a6a
Author: Steffen Winter <steffen.winter@proton.me>
Date:   Sun Nov 26 21:39:13 2023 +0100

    Move calls to find_package to where they're required

commit ed0fa34a9d
Author: Steffen Winter <steffen.winter@proton.me>
Date:   Sun Nov 26 19:39:29 2023 +0100

    Bump required CMake version

commit 2b0cc37632
Author: Jakob P. Liljenberg <admin@qvantnet.com>
Date:   Sat Nov 25 23:11:54 2023 +0100

    Update compile instructions for Gpu support

commit 359c67136b
Author: aristocratos <gnmjpl@gmail.com>
Date:   Sat Nov 25 22:49:26 2023 +0100

    Update changelog

commit 5b01235315
Merge: 0267eba 0bb8599
Author: Jakob P. Liljenberg <admin@qvantnet.com>
Date:   Sat Nov 25 21:57:32 2023 +0100

    Merge pull request #529 from romner-set/main

    Add GPU monitoring support

commit 0bb8599a96
Merge: 94d4502 0267eba
Author: Jakob P. Liljenberg <admin@qvantnet.com>
Date:   Sat Nov 25 21:51:09 2023 +0100

    Merge branch 'main' into main

commit 94d4502901
Author: aristocratos <gnmjpl@gmail.com>
Date:   Sat Nov 25 21:48:50 2023 +0100

    Readme update and Makfile fixes.

commit 19bcff894b
Author: aristocratos <gnmjpl@gmail.com>
Date:   Sat Nov 25 21:01:11 2023 +0100

    Squashed commit of the following:

    commit 0267eba2bb
    Merge: 50bbab0 e81cf2b
    Author: Jakob P. Liljenberg <admin@qvantnet.com>
    Date:   Wed Nov 15 21:43:18 2023 +0100

        Merge pull request #659 from ivanp7/patch-1

        Add alternative key codes for Delete, Insert, Home, End

    commit 50bbab0512
    Merge: 9edbf27 5a14c7b
    Author: Jakob P. Liljenberg <admin@qvantnet.com>
    Date:   Wed Nov 15 21:35:50 2023 +0100

        Merge pull request #660 from stradicat/feature/elementarish

        Elementarish theme: color update according to Elementary palette

    commit 5a14c7b6fa
    Merge: 979506f 71eb414
    Author: Dennis Mayr <dmayr.dev@gmail.com>
    Date:   Wed Nov 15 17:27:34 2023 -0300

        Merge branch 'main' of https://github.com/stradicat/btop

    commit 979506f18e
    Author: Dennis Mayr <dmayr.dev@gmail.com>
    Date:   Wed Nov 8 11:17:47 2023 -0300

        Elementarish theme: color update according to Elementary palette

    commit 71eb4142e8
    Author: Dennis Mayr <dmayr.dev@gmail.com>
    Date:   Wed Nov 8 11:17:47 2023 -0300

        Elementarish theme: color update according to Elementary palette

    commit e81cf2b7ff
    Author: vân <3432246+ivanp7@users.noreply.github.com>
    Date:   Tue Nov 7 15:12:27 2023 +0000

        Add alternative key codes for Insert, Home, End

    commit f9452ff6d5
    Author: vân <3432246+ivanp7@users.noreply.github.com>
    Date:   Mon Nov 6 13:31:53 2023 +0000

        Add alternative Delete key code

        Delete key not always produces ^[[3~, on some terminals (like st) it produces ^[[P.

    commit 9edbf27f1b
    Merge: 2a864f6 ff1f51c
    Author: Jakob P. Liljenberg <admin@qvantnet.com>
    Date:   Sat Oct 21 02:09:55 2023 +0200

        Merge pull request #649 from nobounce/workflow-timeout

        Set FreeBSD workflow timeout

    commit ff1f51ccbb
    Author: Steffen Winter <steffen.winter@proton.me>
    Date:   Wed Oct 18 22:26:36 2023 +0200

        Set FreeBSD workflow timeout

        Recently the FreeBSD workflow has started to hang in a boot loop when
        the VM starts up. The issue is being tracked upstream but there is not
        response at the moment.

        To work around this set a timeout to not waste CI minutes. Other
        workflows might also want this change since they don't take 20 minutes
        anyway.

    commit 2a864f6f2e
    Merge: 636eb25 b2bf8ef
    Author: Jakob P. Liljenberg <admin@qvantnet.com>
    Date:   Sat Oct 7 10:40:54 2023 +0200

        Merge pull request #643 from DecklynKern/main

        Fix scrollbar not clearing sometimes.

    commit b2bf8ef504
    Author: DecklynKern <DecklynKern@gmail.com>
    Date:   Fri Oct 6 17:33:38 2023 -0600

        Fix scrollbar not clearing sometimes.

    commit 636eb25f5e
    Merge: 260c0f6 b5ba2fc
    Author: Jakob P. Liljenberg <admin@qvantnet.com>
    Date:   Sat Sep 30 19:51:03 2023 +0200

        Merge pull request #623 from rahulaggarwal965/main

        Add keybind for toggling memory display mode in PROC box

    commit b5ba2fc963
    Author: Rahul Aggarwal <rahulaggarwal965@gmail.com>
    Date:   Wed Sep 20 22:55:56 2023 -0400

        Add keybind for toggling memory display mode in PROC box

    commit 260c0f6623
    Merge: 52bfff7 e6a06eb
    Author: Jakob P. Liljenberg <admin@qvantnet.com>
    Date:   Sat Sep 30 18:56:25 2023 +0200

        Merge pull request #635 from lvxnull/editorconfig

        Add hpp files to .editorconfig

    commit e6a06eb729
    Author: lvxnull <86745229+lvxnull@users.noreply.github.com>
    Date:   Thu Sep 28 19:44:47 2023 +0200

        Add hpp files to .editorconfig

    commit 52bfff7ceb
    Merge: 1f72e56 19dbbe1
    Author: Jakob P. Liljenberg <admin@qvantnet.com>
    Date:   Sat Sep 30 18:55:08 2023 +0200

        Merge pull request #636 from nobounce/performance-iili

        Minor string initialization improvement

    commit 19dbbe1a17
    Author: nobounce <steffen.winter@proton.me>
    Date:   Fri Sep 29 12:20:59 2023 +0200

        Minor string initialization improvement

    commit 1f72e56c7d
    Merge: 278a0e6 cdcf8bc
    Author: Jakob P. Liljenberg <admin@qvantnet.com>
    Date:   Fri Sep 29 10:43:21 2023 +0200

        Merge pull request #633 from crestfallnatwork/main

        [fix] Made disks statvfs logic asynchronous.

    commit cdcf8bc929
    Author: crestfalln <guptahiman01@gmail.com>
    Date:   Fri Sep 29 09:07:27 2023 +0530

        fixed bug where updated disks stats overrided disk io data

    commit 9b4e85f08d
    Author: crestfalln <no-reply@crestfalln.com>
    Date:   Thu Sep 28 04:57:05 2023 +0530

        fixed bug where updated disks stats overrided disk io data

    commit 889623874e
    Author: crestfalln <no-reply@crestfalln.com>
    Date:   Wed Sep 27 23:57:06 2023 +0530

        made disks stat logic async

    commit 278a0e6b17
    Merge: d16adc9 e89519f
    Author: Jakob P. Liljenberg <admin@qvantnet.com>
    Date:   Thu Sep 28 18:32:09 2023 +0200

        Merge pull request #630 from lvxnull/signal-list

        Fix signal list on non-linux/weird linux platforms

    commit e89519fbb2
    Author: lvxnull <86745229+lvxnull@users.noreply.github.com>
    Date:   Sun Sep 24 21:44:38 2023 +0200

        Fix signal list on non-linux/weird linux platforms

    commit d16adc9fd0
    Merge: 2c3ac48 f34b408
    Author: Jakob P. Liljenberg <admin@qvantnet.com>
    Date:   Thu Sep 28 18:20:42 2023 +0200

        Merge pull request #618 from nobounce/aggregate-child-processes

        Add option to accumulate a child's resources in parent in tree-view

    commit f34b40892f
    Author: nobounce <steffen.winter@proton.me>
    Date:   Sun Sep 24 16:34:50 2023 +0200

        Make process thread count better readable when wider than 5 digits

    commit 6027cedd42
    Author: nobounce <steffen.winter@proton.me>
    Date:   Thu Sep 14 23:27:05 2023 +0200

        Add option to accumulate a child's resources in parent in tree-view

    commit 2c3ac4855d
    Merge: f90dc37 5c6a281
    Author: Jakob P. Liljenberg <admin@qvantnet.com>
    Date:   Wed Sep 13 21:14:56 2023 +0200

        Merge pull request #589 from nobounce/cmake

        Add CMake support for Linux

    commit f90dc37c26
    Merge: 0cac861 68a49c1
    Author: Jakob P. Liljenberg <admin@qvantnet.com>
    Date:   Wed Sep 13 20:27:05 2023 +0200

        Merge pull request #610 from SidVeld/feature/horizon-theme

        Horizon theme

    commit 5c6a281002
    Author: nobounce <steffen.winter@proton.me>
    Date:   Tue Aug 29 20:39:00 2023 +0200

        Add CMake support

        Linux is completly supported

        FreeBSD is not able to create a static executable for now. See
        https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=273398

        MacOS was not tested

    commit 68a49c10a6
    Author: SidVeld <sidveld@gmail.com>
    Date:   Wed Sep 6 18:03:31 2023 +0300

        Add horizon theme

    commit 0cac861910
    Merge: 31be436 f798acd
    Author: Jakob P. Liljenberg <admin@qvantnet.com>
    Date:   Tue Sep 5 19:27:38 2023 +0200

        Merge pull request #609 from scorpion-26/byteconv

        Fix short conversion of 1000-1023 *iB

    commit f798acdaf7
    Author: scorpion-26 <dev.scorpion26@gmail.com>
    Date:   Tue Sep 5 18:00:47 2023 +0200

        Fix short conversion of 1000-1023*iB

        floating_humanizer([1000-1024], true) with base 8 returns "2K", whereas it should return
        "1.0K" to align with other formats. The conversion is also broken for
        all other units(e.g. 1023M is also broken and returns "2G")

    commit 31be4362ce
    Author: aristocratos <gnmjpl@gmail.com>
    Date:   Sun Aug 27 02:00:07 2023 +0200

        FreeBSD Github action 13.1 -> 13.2 and static libgcc and libstdc++

    commit fc523fd1d0
    Author: aristocratos <gnmjpl@gmail.com>
    Date:   Sun Aug 27 01:36:26 2023 +0200

        Fix for FreeBSD github action not failing "correctly"...

commit b87772611c
Author: aristocratos <gnmjpl@gmail.com>
Date:   Sat Nov 25 20:44:45 2023 +0100

    Added definition GPU_SUPPORT to toggle GPU related code

commit 0267eba2bb
Merge: 50bbab0 e81cf2b
Author: Jakob P. Liljenberg <admin@qvantnet.com>
Date:   Wed Nov 15 21:43:18 2023 +0100

    Merge pull request #659 from ivanp7/patch-1

    Add alternative key codes for Delete, Insert, Home, End

commit 50bbab0512
Merge: 9edbf27 5a14c7b
Author: Jakob P. Liljenberg <admin@qvantnet.com>
Date:   Wed Nov 15 21:35:50 2023 +0100

    Merge pull request #660 from stradicat/feature/elementarish

    Elementarish theme: color update according to Elementary palette

commit 5a14c7b6fa
Merge: 979506f 71eb414
Author: Dennis Mayr <dmayr.dev@gmail.com>
Date:   Wed Nov 15 17:27:34 2023 -0300

    Merge branch 'main' of https://github.com/stradicat/btop

commit 979506f18e
Author: Dennis Mayr <dmayr.dev@gmail.com>
Date:   Wed Nov 8 11:17:47 2023 -0300

    Elementarish theme: color update according to Elementary palette

commit 71eb4142e8
Author: Dennis Mayr <dmayr.dev@gmail.com>
Date:   Wed Nov 8 11:17:47 2023 -0300

    Elementarish theme: color update according to Elementary palette

commit e81cf2b7ff
Author: vân <3432246+ivanp7@users.noreply.github.com>
Date:   Tue Nov 7 15:12:27 2023 +0000

    Add alternative key codes for Insert, Home, End

commit f9452ff6d5
Author: vân <3432246+ivanp7@users.noreply.github.com>
Date:   Mon Nov 6 13:31:53 2023 +0000

    Add alternative Delete key code

    Delete key not always produces ^[[3~, on some terminals (like st) it produces ^[[P.

commit 9edbf27f1b
Merge: 2a864f6 ff1f51c
Author: Jakob P. Liljenberg <admin@qvantnet.com>
Date:   Sat Oct 21 02:09:55 2023 +0200

    Merge pull request #649 from nobounce/workflow-timeout

    Set FreeBSD workflow timeout

commit ff1f51ccbb
Author: Steffen Winter <steffen.winter@proton.me>
Date:   Wed Oct 18 22:26:36 2023 +0200

    Set FreeBSD workflow timeout

    Recently the FreeBSD workflow has started to hang in a boot loop when
    the VM starts up. The issue is being tracked upstream but there is not
    response at the moment.

    To work around this set a timeout to not waste CI minutes. Other
    workflows might also want this change since they don't take 20 minutes
    anyway.

commit 2a864f6f2e
Merge: 636eb25 b2bf8ef
Author: Jakob P. Liljenberg <admin@qvantnet.com>
Date:   Sat Oct 7 10:40:54 2023 +0200

    Merge pull request #643 from DecklynKern/main

    Fix scrollbar not clearing sometimes.

commit b2bf8ef504
Author: DecklynKern <DecklynKern@gmail.com>
Date:   Fri Oct 6 17:33:38 2023 -0600

    Fix scrollbar not clearing sometimes.

commit 636eb25f5e
Merge: 260c0f6 b5ba2fc
Author: Jakob P. Liljenberg <admin@qvantnet.com>
Date:   Sat Sep 30 19:51:03 2023 +0200

    Merge pull request #623 from rahulaggarwal965/main

    Add keybind for toggling memory display mode in PROC box

commit b5ba2fc963
Author: Rahul Aggarwal <rahulaggarwal965@gmail.com>
Date:   Wed Sep 20 22:55:56 2023 -0400

    Add keybind for toggling memory display mode in PROC box

commit 260c0f6623
Merge: 52bfff7 e6a06eb
Author: Jakob P. Liljenberg <admin@qvantnet.com>
Date:   Sat Sep 30 18:56:25 2023 +0200

    Merge pull request #635 from lvxnull/editorconfig

    Add hpp files to .editorconfig

commit e6a06eb729
Author: lvxnull <86745229+lvxnull@users.noreply.github.com>
Date:   Thu Sep 28 19:44:47 2023 +0200

    Add hpp files to .editorconfig

commit 52bfff7ceb
Merge: 1f72e56 19dbbe1
Author: Jakob P. Liljenberg <admin@qvantnet.com>
Date:   Sat Sep 30 18:55:08 2023 +0200

    Merge pull request #636 from nobounce/performance-iili

    Minor string initialization improvement

commit 19dbbe1a17
Author: nobounce <steffen.winter@proton.me>
Date:   Fri Sep 29 12:20:59 2023 +0200

    Minor string initialization improvement

commit 1f72e56c7d
Merge: 278a0e6 cdcf8bc
Author: Jakob P. Liljenberg <admin@qvantnet.com>
Date:   Fri Sep 29 10:43:21 2023 +0200

    Merge pull request #633 from crestfallnatwork/main

    [fix] Made disks statvfs logic asynchronous.

commit cdcf8bc929
Author: crestfalln <guptahiman01@gmail.com>
Date:   Fri Sep 29 09:07:27 2023 +0530

    fixed bug where updated disks stats overrided disk io data

commit 9b4e85f08d
Author: crestfalln <no-reply@crestfalln.com>
Date:   Thu Sep 28 04:57:05 2023 +0530

    fixed bug where updated disks stats overrided disk io data

commit 889623874e
Author: crestfalln <no-reply@crestfalln.com>
Date:   Wed Sep 27 23:57:06 2023 +0530

    made disks stat logic async

commit 278a0e6b17
Merge: d16adc9 e89519f
Author: Jakob P. Liljenberg <admin@qvantnet.com>
Date:   Thu Sep 28 18:32:09 2023 +0200

    Merge pull request #630 from lvxnull/signal-list

    Fix signal list on non-linux/weird linux platforms

commit e89519fbb2
Author: lvxnull <86745229+lvxnull@users.noreply.github.com>
Date:   Sun Sep 24 21:44:38 2023 +0200

    Fix signal list on non-linux/weird linux platforms

commit d16adc9fd0
Merge: 2c3ac48 f34b408
Author: Jakob P. Liljenberg <admin@qvantnet.com>
Date:   Thu Sep 28 18:20:42 2023 +0200

    Merge pull request #618 from nobounce/aggregate-child-processes

    Add option to accumulate a child's resources in parent in tree-view

commit f34b40892f
Author: nobounce <steffen.winter@proton.me>
Date:   Sun Sep 24 16:34:50 2023 +0200

    Make process thread count better readable when wider than 5 digits

commit 6027cedd42
Author: nobounce <steffen.winter@proton.me>
Date:   Thu Sep 14 23:27:05 2023 +0200

    Add option to accumulate a child's resources in parent in tree-view

commit 2c3ac4855d
Merge: f90dc37 5c6a281
Author: Jakob P. Liljenberg <admin@qvantnet.com>
Date:   Wed Sep 13 21:14:56 2023 +0200

    Merge pull request #589 from nobounce/cmake

    Add CMake support for Linux

commit f90dc37c26
Merge: 0cac861 68a49c1
Author: Jakob P. Liljenberg <admin@qvantnet.com>
Date:   Wed Sep 13 20:27:05 2023 +0200

    Merge pull request #610 from SidVeld/feature/horizon-theme

    Horizon theme

commit 5c6a281002
Author: nobounce <steffen.winter@proton.me>
Date:   Tue Aug 29 20:39:00 2023 +0200

    Add CMake support

    Linux is completly supported

    FreeBSD is not able to create a static executable for now. See
    https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=273398

    MacOS was not tested

commit 68a49c10a6
Author: SidVeld <sidveld@gmail.com>
Date:   Wed Sep 6 18:03:31 2023 +0300

    Add horizon theme

commit 0cac861910
Merge: 31be436 f798acd
Author: Jakob P. Liljenberg <admin@qvantnet.com>
Date:   Tue Sep 5 19:27:38 2023 +0200

    Merge pull request #609 from scorpion-26/byteconv

    Fix short conversion of 1000-1023 *iB

commit f798acdaf7
Author: scorpion-26 <dev.scorpion26@gmail.com>
Date:   Tue Sep 5 18:00:47 2023 +0200

    Fix short conversion of 1000-1023*iB

    floating_humanizer([1000-1024], true) with base 8 returns "2K", whereas it should return
    "1.0K" to align with other formats. The conversion is also broken for
    all other units(e.g. 1023M is also broken and returns "2G")

commit 975525d38f
Author: aristocratos <gnmjpl@gmail.com>
Date:   Sun Aug 27 12:34:46 2023 +0200

    Fix: Cpu gpu stats always shown when show_gpu_info is On and sizing issues

commit 08abf0b930
Author: aristocratos <gnmjpl@gmail.com>
Date:   Sun Aug 27 01:28:36 2023 +0200

    Quickfixes for MacOS and FreeBSD compilation.

commit 7290109f80
Author: aristocratos <gnmjpl@gmail.com>
Date:   Sun Aug 27 00:58:30 2023 +0200

    Merge fix

commit 283d463242
Merge: efddad4 c296ac1
Author: aristocratos <gnmjpl@gmail.com>
Date:   Sun Aug 27 00:56:22 2023 +0200

    Merge branch 'main' into pr/romner-set/529

commit efddad42dc
Author: aristocratos <gnmjpl@gmail.com>
Date:   Sun Aug 27 00:39:57 2023 +0200

    Changed: cpu_graph_lower Auto defaults to cpu_graph_upper when show_gpu_info is Off

commit a9bc0874d4
Author: aristocratos <gnmjpl@gmail.com>
Date:   Sun Aug 27 00:31:07 2023 +0200

    Added show_gpu_info setting and Auto options for cpu graphs

commit b3970ee19c
Author: aristocratos <gnmjpl@gmail.com>
Date:   Sat Aug 26 20:52:59 2023 +0200

    Fixed: Key 5-0 gpu box toggle

commit bd5d697830
Author: aristocratos <gnmjpl@gmail.com>
Date:   Sat Aug 26 20:29:43 2023 +0200

    Squashed commit of the following:

    commit c296ac13cd
    Merge: 9a1e760 091c30a
    Author: Jakob P. Liljenberg <admin@qvantnet.com>
    Date:   Sat Aug 26 19:29:57 2023 +0200

        Merge pull request #590 from nobounce/dangling-reference-config

        Convert parameters and config keys to std::string_view

    commit 9a1e760a66
    Merge: 9c8af4d 22e64ca
    Author: Jakob P. Liljenberg <admin@qvantnet.com>
    Date:   Sat Aug 26 19:20:18 2023 +0200

        Merge pull request #602 from jfouquart/main

        Fix getting zfs pool name with '.' char in freebsd

    commit 9c8af4df43
    Merge: 8a49d8c 2217cbe
    Author: Jakob P. Liljenberg <admin@qvantnet.com>
    Date:   Sat Aug 26 19:18:55 2023 +0200

        Merge pull request #601 from joske/cleanup

        [macos] don't check /sys on macos

    commit 8a49d8cf45
    Merge: 1556388 008fcd8
    Author: Jakob P. Liljenberg <admin@qvantnet.com>
    Date:   Sat Aug 26 19:18:07 2023 +0200

        Merge pull request #600 from joske/makefile

        [macos/freebsd] support gcc13

    commit 1556388c83
    Merge: 1b126f5 d17e1a2
    Author: Jakob P. Liljenberg <admin@qvantnet.com>
    Date:   Sat Aug 26 19:14:00 2023 +0200

        Merge pull request #599 from joske/main

        [macos] fix temp sensor on system with many cores

    commit d17e1a2dac
    Author: Jos Dehaes <jos.dehaes@gmail.com>
    Date:   Fri Aug 25 16:18:39 2023 +0200

        fix some warnings

    commit 4d8aa6b118
    Author: Jos Dehaes <jos.dehaes@gmail.com>
    Date:   Fri Aug 25 15:52:58 2023 +0200

        fix core check

    commit 22e64caaff
    Author: Jonathan Fouquart <jfouquart@hotmail.fr>
    Date:   Fri Aug 25 09:37:49 2023 +0200

        Fix getting zfs pool name with '.' char in freebsd

    commit 2217cbe143
    Author: Jos Dehaes <jos.dehaes@gmail.com>
    Date:   Wed Aug 23 16:01:04 2023 +0200

        [macos] don't check /sys on macos

    commit 008fcd889e
    Author: Jos Dehaes <jos.dehaes@gmail.com>
    Date:   Wed Aug 23 16:05:00 2023 +0200

        also add g++13

    commit 0fdca5eb03
    Author: Jos Dehaes <jos.dehaes@gmail.com>
    Date:   Wed Aug 23 15:54:07 2023 +0200

        support gcc13

    commit dcbdb7360d
    Author: Jos Dehaes <jos.dehaes@gmail.com>
    Date:   Wed Aug 23 15:46:47 2023 +0200

        [macos] fix temp sensor on system with many cores

    commit 1b126f55e3
    Author: aristocratos <gnmjpl@gmail.com>
    Date:   Fri Aug 4 01:08:27 2023 +0200

        Update Makefile for partial static compilation on freebsd

    commit c8ec6bbb00
    Author: aristocratos <gnmjpl@gmail.com>
    Date:   Thu Aug 3 23:08:33 2023 +0200

        Fix freebsd nullptr changes and makefile for gcc12 and newer

    commit 8a33aab588
    Merge: 94e5c02 e4abcef
    Author: Jakob P. Liljenberg <admin@qvantnet.com>
    Date:   Sun Jul 30 13:21:48 2023 +0200

        Merge pull request #539 from nobounce/replace-NULL-nullptr

        Modernize using nullptr.

    commit 94e5c02d11
    Author: aristocratos <gnmjpl@gmail.com>
    Date:   Thu Jul 27 20:51:21 2023 +0200

        Better text editing

    commit 091c30ab2b
    Author: nobounce <steffen.winter@proton.me>
    Date:   Thu Jul 27 14:17:54 2023 +0200

        Convert parameters and config keys to std::string_view

        Using std::string_view instead of std::string& silences a new warning
        from GCC 13, -Wdangling-reference

        Also switch return type of `getI` from int& to int, trivial types are
        cheaper to copy by value

    commit e4abcefbf9
    Author: nobounce <steffen.winter@proton.me>
    Date:   Wed Jul 26 16:19:17 2023 +0200

        Use nullptr instead of NULL.

        See https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2431.pdf
        TLDR: NULL is of type int and relies on proper implicit pointer
        conversion which may lead to issues when using overloaded functions

        It is also considered a 'best practise' for modern C++ and
        conveys the programmers intention more precisly.

    commit d53307f14c
    Author: nobounce <steffen.winter@proton.me>
    Date:   Sun Jul 23 19:53:36 2023 +0200

        Fix path to Linux CI file in itself

        The CI file has a list of dependent files including itself. The path was
        not updated when the CI was split into different files

    commit 594f42b9eb
    Merge: aca2e4b 53d6eba
    Author: Jakob P. Liljenberg <admin@qvantnet.com>
    Date:   Wed Jul 26 15:38:01 2023 +0200

        Merge pull request #584 from nobounce/nb/fix-ci-path

        Fix path to Linux CI file in itself

    commit aca2e4be75
    Author: aristocratos <gnmjpl@gmail.com>
    Date:   Wed Jul 26 14:38:48 2023 +0200

        Fix whitespace indent -> tab indent

    commit 33faa01910
    Author: aristocratos <gnmjpl@gmail.com>
    Date:   Wed Jul 26 14:34:15 2023 +0200

        Revert fmt submodule to static fmt folder in include

    commit 53d6ebabc0
    Author: nobounce <steffen.winter@proton.me>
    Date:   Sun Jul 23 19:53:36 2023 +0200

        Fix path to Linux CI file in itself

        The CI file has a list of dependent files including itself. The path was
        not updated when the CI was split into different files

commit 346c9e479b
Author: romner <roman@skotnica.com>
Date:   Wed Jul 19 16:53:58 2023 +0200

    Fix GPU text overflow in CPU panel, again

commit 3a5e5fd5d3
Author: romner <roman@skotnica.com>
Date:   Wed Jul 19 16:22:45 2023 +0200

    Improve 0-10 key input

commit 972b2b6a01
Author: romner <roman@skotnica.com>
Date:   Wed Jul 19 15:54:35 2023 +0200

    Fix available boxes in menu & config description

commit 1f73453aec
Author: romner <roman@skotnica.com>
Date:   Wed Jul 19 15:34:23 2023 +0200

    Fix crashes when trying to open nth GPU box with only n-1 GPUs in the system

commit 46c6be0a29
Author: romner <roman@skotnica.com>
Date:   Sun Jul 16 17:19:09 2023 +0200

    Fix GPU horizontal text overflow in CPU panel

commit 85fb28cee6
Author: romner <roman@skotnica.com>
Date:   Fri Jul 14 02:39:44 2023 +0200

    Fix RSMI_STATIC=true and add GPU section to README.md

commit 3fad8a6fde
Author: romner-set <roman@skotnica.com>
Date:   Mon Jun 26 13:10:31 2023 +0200

    Add GPU options

commit 746f716a02
Author: romner-set <roman@skotnica.com>
Date:   Fri Jun 16 11:11:57 2023 +0200

    Remove lib/rocm_smi_lib and add instructions for obtaining it to README

commit d8ebbe1181
Author: romner <roman@skotnica.com>
Date:   Thu Jun 8 20:24:01 2023 +0200

    Join NVML PCIe threads only if PCIe TX/RX is supported by GPU

commit be10989151
Author: romner <roman@skotnica.com>
Date:   Tue Jun 6 19:47:07 2023 +0200

    Parallelize NVML PCIe TX/RX data collection

commit 85892a9fe3
Author: aristocratos <gnmjpl@gmail.com>
Date:   Mon Jun 5 21:59:26 2023 +0200

    Fix type: ulong -> size_t and compare std::cmp_less

commit 85a10f0305
Author: romner <roman@skotnica.com>
Date:   Fri Jun 2 16:14:24 2023 +0200

    Fix ROCm SMI makefile flags

commit cd6979277d
Author: romner <roman@skotnica.com>
Date:   Fri Jun 2 15:44:44 2023 +0200

    Fix error when ROCm SMI static compilation fails

commit daaa45324f
Author: romner <roman@skotnica.com>
Date:   Fri Jun 2 15:34:12 2023 +0200

    Load ROCm SMI dynamically by default, optionally statically compile and link

commit 093edfe948
Author: aristocratos <gnmjpl@gmail.com>
Date:   Thu Jun 1 19:49:00 2023 +0200

    Minor changes in wording...

commit b9a4d31fa4
Author: aristocratos <gnmjpl@gmail.com>
Date:   Thu Jun 1 19:37:53 2023 +0200

    Fix Makefile dependency order and layout

commit a0163ce220
Author: romner <roman@skotnica.com>
Date:   Thu Jun 1 16:42:02 2023 +0200

    Statically link ROCm SMI

commit b2df0696fd
Author: romner-set <roman@skotnica.com>
Date:   Thu Jun 1 03:41:56 2023 +0200

    Dynamically load NVML

commit 547f17dda3
Author: romner-set <roman@skotnica.com>
Date:   Tue May 30 18:24:50 2023 +0200

    Add more GPU graph types to the CPU panel

commit 842c761a73
Author: romner-set <roman@skotnica.com>
Date:   Mon May 22 09:46:20 2023 +0200

    Fix crash when all GPU panels are open but the CPU panel is closed

commit 8c96bd51e9
Author: romner <roman@skotnica.com>
Date:   Sun May 21 20:34:47 2023 +0200

    Handle GPUs which cannot report certain stats in GPU panel

commit 414d7eb94c
Author: romner <roman@skotnica.com>
Date:   Sun May 21 18:02:50 2023 +0200

    Handle GPUs which cannot report certain stats in btop_collect.cpp and CPU panel

commit 005de97e6d
Author: aristocratos <gnmjpl@gmail.com>
Date:   Sun May 21 13:58:11 2023 +0200

    Add missing fmt prefixes

commit 1fee2bc08b
Author: aristocratos <gnmjpl@gmail.com>
Date:   Sun May 21 13:52:19 2023 +0200

    Add DebugTimer class and change some Logger::error calls to Logger::debug

commit 2e68c0b916
Author: aristocratos <gnmjpl@gmail.com>
Date:   Sat May 20 17:27:20 2023 +0200

    Fixed key > gpu_names check

commit 04ed16a9f6
Author: aristocratos <gnmjpl@gmail.com>
Date:   Sat May 20 17:15:45 2023 +0200

    Merged changes from main

commit 8c710a2b68
Author: aristocratos <gnmjpl@gmail.com>
Date:   Sat May 20 01:41:04 2023 +0200

    Makefile auto detection and initial logic for excluding gpu code when libs are missing

commit 8bae1ec092
Author: aristocratos <gnmjpl@gmail.com>
Date:   Sat May 20 00:13:00 2023 +0200

    Fixed debug timer for gpu

commit 01acfd603e
Author: romner-set <roman@skotnica.com>
Date:   Fri May 19 16:42:32 2023 +0200

    Bind GPU panel to 5,6,7,8,9,0 and fully implement multi-GPU support

commit 22a463976d
Author: romner <roman@skotnica.com>
Date:   Thu May 18 16:07:05 2023 +0200

    Add GPU info to CPU panel

commit c352bf2613
Author: romner-set <roman@skotnica.com>
Date:   Mon May 15 19:42:55 2023 +0200

    Add ROCm SMI backend for AMD GPU support

commit 917d568a77
Author: romner-set <roman@skotnica.com>
Date:   Mon May 15 13:58:54 2023 +0200

    Add multi-GPU support for NVML data collection

commit 2d27f2ff61
Author: romner <roman@skotnica.com>
Date:   Sun May 14 17:40:50 2023 +0200

    Fix crash when no nvidia GPU is detected

commit 0e0025a2c3
Author: romner <roman@skotnica.com>
Date:   Sun May 14 17:31:39 2023 +0200

    Update makefile text, fix typo and adhere to contibuting guidelines

commit bcffcdf19f
Author: romner <roman@skotnica.com>
Date:   Sun May 14 16:53:06 2023 +0200

    Make GPU window's size dynamic and integrate it with the rest of btop

commit 95b3228308
Author: romner <roman@skotnica.com>
Date:   Sat May 13 19:41:51 2023 +0200

    Improve GPU side panel

commit adcdc583b0
Author: romner <roman@skotnica.com>
Date:   Sat May 13 00:27:23 2023 +0200

    Add GPU side panel

commit d522a91ef4
Author: romner <roman@skotnica.com>
Date:   Fri May 12 19:34:47 2023 +0200

    Add rudimentary, fullscreen single-GPU NVML utilization graph
2024-01-02 15:29:53 +01:00

395 lines
17 KiB
Makefile

#* Btop++ makefile v1.6
BANNER = \n \033[38;5;196m██████\033[38;5;240m╗ \033[38;5;196m████████\033[38;5;240m╗ \033[38;5;196m██████\033[38;5;240m╗ \033[38;5;196m██████\033[38;5;240m╗\n \033[38;5;160m██\033[38;5;239m╔══\033[38;5;160m██\033[38;5;239m╗╚══\033[38;5;160m██\033[38;5;239m╔══╝\033[38;5;160m██\033[38;5;239m╔═══\033[38;5;160m██\033[38;5;239m╗\033[38;5;160m██\033[38;5;239m╔══\033[38;5;160m██\033[38;5;239m╗ \033[38;5;160m██\033[38;5;239m╗ \033[38;5;160m██\033[38;5;239m╗\n \033[38;5;124m██████\033[38;5;238m╔╝ \033[38;5;124m██\033[38;5;238m║ \033[38;5;124m██\033[38;5;238m║ \033[38;5;124m██\033[38;5;238m║\033[38;5;124m██████\033[38;5;238m╔╝ \033[38;5;124m██████\033[38;5;238m╗\033[38;5;124m██████\033[38;5;238m╗\n \033[38;5;88m██\033[38;5;237m╔══\033[38;5;88m██\033[38;5;237m╗ \033[38;5;88m██\033[38;5;237m║ \033[38;5;88m██\033[38;5;237m║ \033[38;5;88m██\033[38;5;237m║\033[38;5;88m██\033[38;5;237m╔═══╝ ╚═\033[38;5;88m██\033[38;5;237m╔═╝╚═\033[38;5;88m██\033[38;5;237m╔═╝\n \033[38;5;52m██████\033[38;5;236m╔╝ \033[38;5;52m██\033[38;5;236m║ ╚\033[38;5;52m██████\033[38;5;236m╔╝\033[38;5;52m██\033[38;5;236m║ ╚═╝ ╚═╝\n \033[38;5;235m╚═════╝ ╚═╝ ╚═════╝ ╚═╝ \033[1;3;38;5;240mMakefile v1.6\033[0m
override BTOP_VERSION := $(shell head -n100 src/btop.cpp 2>/dev/null | grep "Version =" | cut -f2 -d"\"" || echo " unknown")
override TIMESTAMP := $(shell date +%s 2>/dev/null || echo "0")
override DATESTAMP := $(shell date '+%Y-%m-%d %H:%M:%S' || echo "5 minutes ago")
ifeq ($(shell command -v gdate >/dev/null; echo $$?),0)
DATE_CMD := gdate
else
DATE_CMD := date
endif
ifneq ($(QUIET),true)
override QUIET := false
endif
OLDCXX := $(CXXFLAGS)
OLDLD := $(LDFLAGS)
PREFIX ?= /usr/local
#? Detect PLATFORM and ARCH from uname/gcc if not set
PLATFORM ?= $(shell uname -s || echo unknown)
ifneq ($(filter unknown Darwin, $(PLATFORM)),)
override PLATFORM := $(shell $(CXX) -dumpmachine | awk -F"-" '{ print (NF==4) ? $$3 : $$2 }')
ifeq ($(PLATFORM),apple)
override PLATFORM := macos
endif
endif
ifeq ($(shell uname -v | grep ARM64 >/dev/null 2>&1; echo $$?),0)
ARCH ?= arm64
else
ARCH ?= $(shell $(CXX) -dumpmachine | cut -d "-" -f 1)
endif
override PLATFORM_LC := $(shell echo $(PLATFORM) | tr '[:upper:]' '[:lower:]')
#? GPU Support
ifeq ($(PLATFORM_LC)$(ARCH),linuxx86_64)
ifneq ($(STATIC),true)
GPU_SUPPORT := true
endif
endif
ifneq ($(GPU_SUPPORT),true)
GPU_SUPPORT := false
endif
ifeq ($(GPU_SUPPORT),true)
override ADDFLAGS += -DGPU_SUPPORT
endif
#? Compiler and Linker
ifeq ($(shell $(CXX) --version | grep clang >/dev/null 2>&1; echo $$?),0)
override CXX_IS_CLANG := true
endif
override CXX_VERSION := $(shell $(CXX) -dumpfullversion -dumpversion || echo 0)
override CXX_VERSION_MAJOR := $(shell echo $(CXX_VERSION) | cut -d '.' -f 1)
CLANG_WORKS = false
GCC_WORKS = false
MIN_CLANG_VERSION = 16
ifeq ($(DEBUG),true)
override ADDFLAGS += -DBTOP_DEBUG
endif
#? Supported is Clang 16.0.0 and later
ifeq ($(CXX_IS_CLANG),true)
ifeq ($(shell $(CXX) --version | grep Apple >/dev/null 2>&1; echo $$?),0)
MIN_CLANG_VERSION := 15
endif
ifneq ($(shell test $(CXX_VERSION_MAJOR) -lt $(MIN_CLANG_VERSION); echo $$?),0)
CLANG_WORKS := true
endif
endif
ifeq ($(CLANG_WORKS),false)
#? Try to find a newer GCC version
ifeq ($(shell command -v g++-13 >/dev/null; echo $$?),0)
CXX := g++-13
else ifeq ($(shell command -v g++13 >/dev/null; echo $$?),0)
CXX := g++13
else ifeq ($(shell command -v g++-12 >/dev/null; echo $$?),0)
CXX := g++-12
else ifeq ($(shell command -v g++12 >/dev/null; echo $$?),0)
CXX := g++12
else ifeq ($(shell command -v g++-11 >/dev/null; echo $$?),0)
CXX := g++-11
else ifeq ($(shell command -v g++11 >/dev/null; echo $$?),0)
CXX := g++11
else ifeq ($(shell command -v g++ >/dev/null; echo $$?),0)
CXX := g++
else ifeq ($(shell command -v eg++ >/dev/null; echo $$?),0)
CXX := eg++
else
GCC_NOT_FOUND := true
endif
ifndef GCC_NOT_FOUND
override CXX_VERSION := $(shell $(CXX) -dumpfullversion -dumpversion || echo 0)
override CXX_VERSION_MAJOR := $(shell echo $(CXX_VERSION) | cut -d '.' -f 1)
ifneq ($(shell test $(CXX_VERSION_MAJOR) -lt 10; echo $$?),0)
GCC_WORKS := true
endif
endif
endif
ifeq ($(CLANG_WORKS),false)
ifeq ($(GCC_WORKS),false)
$(error $(shell printf "\033[1;91mERROR: \033[97mCompiler too old. (Requires Clang 16.0.0, GCC 10.1.0)\033[0m"))
endif
endif
#? Any flags added to TESTFLAGS must not contain whitespace for the testing to work
override TESTFLAGS := -fexceptions -fstack-clash-protection -fcf-protection
ifneq ($(PLATFORM) $(ARCH),macos arm64)
override TESTFLAGS += -fstack-protector
endif
ifeq ($(STATIC),true)
ifeq ($(CXX_IS_CLANG) $(CLANG_WORKS),true true)
ifeq ($(shell $(CXX) -print-target-triple | grep gnu >/dev/null; echo $$?),0)
$(error $(shell printf "\033[1;91mERROR: \033[97m$(CXX) can't statically link glibc\033[0m"))
endif
else
override ADDFLAGS += -static-libgcc -static-libstdc++
endif
ifeq ($(PLATFORM_LC),linux)
override ADDFLAGS += -DSTATIC_BUILD -static -Wl,--fatal-warnings
else ifeq ($(PLATFORM_LC),freebsd)
override ADDFLAGS += -DSTATIC_BUILD
endif
endif
ifeq ($(STRIP),true)
override ADDFLAGS += -s
endif
ifeq ($(VERBOSE),true)
override VERBOSE := false
else
override VERBOSE := true
endif
#? Pull in platform specific source files and get thread count
ifeq ($(PLATFORM_LC),linux)
PLATFORM_DIR := linux
THREADS := $(shell getconf _NPROCESSORS_ONLN 2>/dev/null || echo 1)
SU_GROUP := root
else ifeq ($(PLATFORM_LC),freebsd)
PLATFORM_DIR := freebsd
THREADS := $(shell getconf NPROCESSORS_ONLN 2>/dev/null || echo 1)
SU_GROUP := wheel
override ADDFLAGS += -lm -lkvm -ldevstat -Wl,-rpath=/usr/local/lib/gcc$(CXX_VERSION_MAJOR)
ifneq ($(STATIC),true)
override ADDFLAGS += -lstdc++
endif
export MAKE = gmake
else ifeq ($(PLATFORM_LC),macos)
PLATFORM_DIR := osx
THREADS := $(shell sysctl -n hw.ncpu || echo 1)
override ADDFLAGS += -framework IOKit -framework CoreFoundation -Wno-format-truncation
SU_GROUP := wheel
else ifeq ($(PLATFORM_LC),openbsd)
PLATFORM_DIR := openbsd
THREADS := $(shell sysctl -n hw.ncpu || echo 1)
override ADDFLAGS += -lkvm
export MAKE = gmake
SU_GROUP := wheel
else
$(error $(shell printf "\033[1;91mERROR: \033[97mUnsupported platform ($(PLATFORM))\033[0m"))
endif
#? Use all CPU cores (will only be set if using Make 4.3+)
MAKEFLAGS := --jobs=$(THREADS)
ifeq ($(THREADS),1)
override THREADS := auto
endif
#? LTO command line
ifeq ($(CLANG_WORKS),true)
LTO := thin
else
LTO := $(THREADS)
endif
#? The Directories, Source, Includes, Objects and Binary
SRCDIR := src
INCDIRS := include $(wildcard lib/**/include)
BUILDDIR := obj
TARGETDIR := bin
SRCEXT := cpp
DEPEXT := d
OBJEXT := o
#? Filter out unsupported compiler flags
override GOODFLAGS := $(foreach flag,$(TESTFLAGS),$(strip $(shell echo "int main() {}" | $(CXX) -o /dev/null $(flag) -x c++ - >/dev/null 2>&1 && echo $(flag) || true)))
#? Flags, Libraries and Includes
override REQFLAGS := -std=c++20
WARNFLAGS := -Wall -Wextra -pedantic
OPTFLAGS := -O2 -ftree-vectorize -flto=$(LTO)
LDCXXFLAGS := -pthread -D_FORTIFY_SOURCE=2 -D_GLIBCXX_ASSERTIONS -D_FILE_OFFSET_BITS=64 $(GOODFLAGS) $(ADDFLAGS)
override CXXFLAGS += $(REQFLAGS) $(LDCXXFLAGS) $(OPTFLAGS) $(WARNFLAGS)
override LDFLAGS += $(LDCXXFLAGS) $(OPTFLAGS) $(WARNFLAGS)
INC := $(foreach incdir,$(INCDIRS),-isystem $(incdir)) -I$(SRCDIR)
SU_USER := root
ifdef DEBUG
override OPTFLAGS := -O0 -g
endif
SOURCES := $(sort $(shell find $(SRCDIR) -maxdepth 1 -type f -name *.$(SRCEXT)))
SOURCES += $(sort $(shell find $(SRCDIR)/$(PLATFORM_DIR) -type f -name *.$(SRCEXT)))
#? Setup percentage progress
SOURCE_COUNT := $(words $(SOURCES))
OBJECTS := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.$(OBJEXT)))
ifeq ($(shell find $(BUILDDIR) -type f -newermt "$(DATESTAMP)" -name *.o >/dev/null 2>&1; echo $$?),0)
ifneq ($(wildcard $(BUILDDIR)/.*),)
SKIPPED_SOURCES := $(foreach fname,$(SOURCES),$(shell find $(BUILDDIR) -type f -newer $(fname) -name *.o | grep "$(basename $(notdir $(fname))).o" 2>/dev/null))
override SOURCE_COUNT := $(shell expr $(SOURCE_COUNT) - $(words $(SKIPPED_SOURCES)))
ifeq ($(SOURCE_COUNT),0)
override SOURCE_COUNT = $(words $(SOURCES))
endif
endif
PROGRESS = expr $$(find $(BUILDDIR) -type f -newermt "$(DATESTAMP)" -name *.o | wc -l || echo 1) '*' 90 / $(SOURCE_COUNT) | cut -c1-2
else
PROGRESS = expr $$(find $(BUILDDIR) -type f -name *.o | wc -l || echo 1) '*' 90 / $(SOURCE_COUNT) | cut -c1-2
endif
P := %%
ifeq ($(VERBOSE),true)
# Doesn't work with `&>`
override SUPPRESS := > /dev/null 2> /dev/null
else
override SUPPRESS :=
endif
#? Default Make
.ONESHELL:
all: | info rocm_smi info-quiet directories btop
ifneq ($(QUIET),true)
info:
@printf " $(BANNER)\n"
@printf "\033[1;92mPLATFORM \033[1;93m?| \033[0m$(PLATFORM)\n"
@printf "\033[1;96mARCH \033[1;93m?| \033[0m$(ARCH)\n"
@printf "\033[1;95mGPU_SUPPORT \033[1;94m:| \033[0m$(GPU_SUPPORT)\n"
@printf "\033[1;93mCXX \033[1;93m?| \033[0m$(CXX) \033[1;93m(\033[97m$(CXX_VERSION)\033[93m)\n"
@printf "\033[1;94mTHREADS \033[1;94m:| \033[0m$(THREADS)\n"
@printf "\033[1;92mREQFLAGS \033[1;91m!| \033[0m$(REQFLAGS)\n"
@printf "\033[1;91mWARNFLAGS \033[1;94m:| \033[0m$(WARNFLAGS)\n"
@printf "\033[1;94mOPTFLAGS \033[1;94m:| \033[0m$(OPTFLAGS)\n"
@printf "\033[1;93mLDCXXFLAGS \033[1;94m:| \033[0m$(LDCXXFLAGS)\n"
@printf "\033[1;95mCXXFLAGS \033[1;92m+| \033[0;37m\$$(\033[92mREQFLAGS\033[37m) \$$(\033[93mLDCXXFLAGS\033[37m) \$$(\033[94mOPTFLAGS\033[37m) \$$(\033[91mWARNFLAGS\033[37m) $(OLDCXX)\n"
@printf "\033[1;95mLDFLAGS \033[1;92m+| \033[0;37m\$$(\033[93mLDCXXFLAGS\033[37m) \$$(\033[94mOPTFLAGS\033[37m) \$$(\033[91mWARNFLAGS\033[37m) $(OLDLD)\n"
else
info:
@true
endif
info-quiet: | info rocm_smi
@printf "\n\033[1;92mBuilding btop++ \033[91m(\033[97mv$(BTOP_VERSION)\033[91m) \033[93m$(PLATFORM) \033[96m$(ARCH)\033[0m\n"
help:
@printf " $(BANNER)\n"
@printf "\033[1;97mbtop++ makefile\033[0m\n"
@printf "usage: make [argument]\n\n"
@printf "arguments:\n"
@printf " all Compile btop (default argument)\n"
@printf " clean Remove built objects\n"
@printf " distclean Remove built objects and binaries\n"
@printf " install Install btop++ to \$$PREFIX ($(PREFIX))\n"
@printf " setuid Set installed binary owner/group to \$$SU_USER/\$$SU_GROUP ($(SU_USER)/$(SU_GROUP)) and set SUID bit\n"
@printf " uninstall Uninstall btop++ from \$$PREFIX\n"
@printf " info Display information about Environment,compiler and linker flags\n"
#? Make the Directories
directories:
@$(VERBOSE) || printf "mkdir -p $(TARGETDIR)\n"
@mkdir -p $(TARGETDIR)
@$(VERBOSE) || printf "mkdir -p $(BUILDDIR)/$(PLATFORM_DIR)\n"
@mkdir -p $(BUILDDIR)/$(PLATFORM_DIR)
#? Clean only Objects
clean:
@printf "\033[1;91mRemoving: \033[1;97mbuilt objects...\033[0m\n"
@rm -rf $(BUILDDIR)
@test -e lib/rocm_smi_lib/build && cmake --build lib/rocm_smi_lib/build --target clean &> /dev/null || true
#? Clean Objects and Binaries
distclean: clean
@printf "\033[1;91mRemoving: \033[1;97mbuilt binaries...\033[0m\n"
@rm -rf $(TARGETDIR)
@test -e lib/rocm_smi_lib/build && rm -rf lib/rocm_smi_lib/build || true
install:
@printf "\033[1;92mInstalling binary to: \033[1;97m$(DESTDIR)$(PREFIX)/bin/btop\n"
@mkdir -p $(DESTDIR)$(PREFIX)/bin
@cp -p $(TARGETDIR)/btop $(DESTDIR)$(PREFIX)/bin/btop
@chmod 755 $(DESTDIR)$(PREFIX)/bin/btop
@printf "\033[1;92mInstalling doc to: \033[1;97m$(DESTDIR)$(PREFIX)/share/btop\n"
@mkdir -p $(DESTDIR)$(PREFIX)/share/btop
@cp -p README.md $(DESTDIR)$(PREFIX)/share/btop
@printf "\033[1;92mInstalling themes to: \033[1;97m$(DESTDIR)$(PREFIX)/share/btop/themes\033[0m\n"
@cp -pr themes $(DESTDIR)$(PREFIX)/share/btop
@printf "\033[1;92mInstalling desktop entry to: \033[1;97m$(DESTDIR)$(PREFIX)/share/applications/btop.desktop\n"
@mkdir -p $(DESTDIR)$(PREFIX)/share/applications/
@cp -p btop.desktop $(DESTDIR)$(PREFIX)/share/applications/btop.desktop
@printf "\033[1;92mInstalling PNG icon to: \033[1;97m$(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/btop.png\n"
@mkdir -p $(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps
@cp -p Img/icon.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/btop.png
@printf "\033[1;92mInstalling SVG icon to: \033[1;97m$(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/btop.svg\n"
@mkdir -p $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps
@cp -p Img/icon.svg $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/btop.svg
#? Set SUID bit for btop as $SU_USER in $SU_GROUP
setuid:
@printf "\033[1;97mFile: $(DESTDIR)$(PREFIX)/bin/btop\n"
@printf "\033[1;92mSetting owner \033[1;97m$(SU_USER):$(SU_GROUP)\033[0m\n"
@chown $(SU_USER):$(SU_GROUP) $(DESTDIR)$(PREFIX)/bin/btop
@printf "\033[1;92mSetting SUID bit\033[0m\n"
@chmod u+s $(DESTDIR)$(PREFIX)/bin/btop
uninstall:
@printf "\033[1;91mRemoving: \033[1;97m$(DESTDIR)$(PREFIX)/bin/btop\033[0m\n"
@rm -rf $(DESTDIR)$(PREFIX)/bin/btop
@printf "\033[1;91mRemoving: \033[1;97m$(DESTDIR)$(PREFIX)/share/btop\033[0m\n"
@rm -rf $(DESTDIR)$(PREFIX)/share/btop
@printf "\033[1;91mRemoving: \033[1;97m$(DESTDIR)$(PREFIX)/share/applications/btop.desktop\033[0m\n"
@rm -rf $(DESTDIR)$(PREFIX)/share/applications/btop.desktop
@printf "\033[1;91mRemoving: \033[1;97m$(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/btop.png\033[0m\n"
@rm -rf $(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/btop.png
@printf "\033[1;91mRemoving: \033[1;97m$(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/btop.svg\033[0m\n"
@rm -rf $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/btop.svg
#? Pull in dependency info for *existing* .o files
-include $(OBJECTS:.$(OBJEXT)=.$(DEPEXT))
#? Compile rocm_smi
ifeq ($(GPU_SUPPORT)$(RSMI_STATIC),truetrue)
ROCM_DIR ?= lib/rocm_smi_lib
ROCM_BUILD_DIR := $(ROCM_DIR)/build
ifeq ($(DEBUG),true)
BUILD_TYPE := Debug
else
BUILD_TYPE := Release
endif
.ONESHELL:
rocm_smi:
@printf "\n\033[1;92mBuilding ROCm SMI static library\033[37m...\033[0m\n"
@TSTAMP=$$(date +%s 2>/dev/null || echo "0")
@$(QUIET) || printf "\033[1;97mRunning CMake...\033[0m\n"
CXX=$(CXX) cmake -S $(ROCM_DIR) -B $(ROCM_BUILD_DIR) -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) -DCMAKE_POLICY_DEFAULT_CMP0069=NEW -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DBUILD_SHARED_LIBS=OFF $(SUPPRESS) || { printf "\033[1;91mCMake failed, continuing build without statically linking ROCm SMI\033[37m...\033[0m\n"; exit 0; }
@$(QUIET) || printf "\n\033[1;97mBuilding and linking...\033[0m\n"
@cmake --build $(ROCM_BUILD_DIR) -j -t rocm_smi64 $(SUPPRESS) || { printf "\033[1;91mMake failed, continuing build without statically linking ROCm SMI\033[37m...\033[0m\n"; exit 0; }
@printf "\033[1;92m100$(P)\033[10D\033[5C-> \033[1;37m$(ROCM_BUILD_DIR)/rocm_smi/librocm_smi64.a \033[1;93m(\033[1;97m$$(du -ah $(ROCM_BUILD_DIR)/rocm_smi/librocm_smi64.a | cut -f1)iB\033[1;93m)\033[0m\n"
@printf "\033[1;92mROCm SMI build complete in \033[92m(\033[97m$$($(DATE_CMD) -d @$$(expr $$(date +%s 2>/dev/null || echo "0") - $(TIMESTAMP) 2>/dev/null) -u +%Mm:%Ss 2>/dev/null | sed 's/^00m://' || echo "unknown")\033[92m)\033[0m\n"
@$(eval override LDFLAGS += $(ROCM_BUILD_DIR)/rocm_smi/librocm_smi64.a -DRSMI_STATIC) # TODO: this seems to execute every time, no matter if the compilation failed or succeeded
@$(eval override CXXFLAGS += -DRSMI_STATIC)
else
rocm_smi:
@true
endif
#? Link
.ONESHELL:
btop: $(OBJECTS) | rocm_smi directories
@sleep 0.2 2>/dev/null || true
@TSTAMP=$$(date +%s 2>/dev/null || echo "0")
@$(QUIET) || printf "\n\033[1;92mLinking and optimizing binary\033[37m...\033[0m\n"
@$(VERBOSE) || printf "$(CXX) -o $(TARGETDIR)/btop $^ $(LDFLAGS)\n"
@$(CXX) -o $(TARGETDIR)/btop $^ $(LDFLAGS) || exit 1
@printf "\033[1;92m100$(P) -> \033[1;37m$(TARGETDIR)/btop \033[100D\033[38C\033[1;93m(\033[1;97m$$(du -ah $(TARGETDIR)/btop | cut -f1)iB\033[1;93m) \033[92m(\033[97m$$($(DATE_CMD) -d @$$(expr $$(date +%s 2>/dev/null || echo "0") - $${TSTAMP} 2>/dev/null) -u +%Mm:%Ss 2>/dev/null | sed 's/^00m://' || echo '')\033[92m)\033[0m\n"
@printf "\n\033[1;92mBuild complete in \033[92m(\033[97m$$($(DATE_CMD) -d @$$(expr $$(date +%s 2>/dev/null || echo "0") - $(TIMESTAMP) 2>/dev/null) -u +%Mm:%Ss 2>/dev/null | sed 's/^00m://' || echo "unknown")\033[92m)\033[0m\n"
#? Compile
.ONESHELL:
$(BUILDDIR)/%.$(OBJEXT): $(SRCDIR)/%.$(SRCEXT) | rocm_smi directories
@sleep 0.3 2>/dev/null || true
@TSTAMP=$$(date +%s 2>/dev/null || echo "0")
@$(QUIET) || printf "\033[1;97mCompiling $<\033[0m\n"
@$(VERBOSE) || printf "$(CXX) $(CXXFLAGS) $(INC) -MMD -c -o $@ $<\n"
@$(CXX) $(CXXFLAGS) $(INC) -MMD -c -o $@ $< || exit 1
@printf "\033[1;92m$$($(PROGRESS))$(P)\033[10D\033[5C-> \033[1;37m$@ \033[100D\033[38C\033[1;93m(\033[1;97m$$(du -ah $@ | cut -f1)iB\033[1;93m) \033[92m(\033[97m$$($(DATE_CMD) -d @$$(expr $$($(DATE_CMD) +%s 2>/dev/null || echo "0") - $${TSTAMP} 2>/dev/null) -u +%Mm:%Ss 2>/dev/null | sed 's/^00m://' || echo '')\033[92m)\033[0m\n"
#? Non-File Targets
.PHONY: all msg help pre