Salut,
Ton utilisation de CMake est un peu maladroite.
- Ton appel à
project
active C
et CXX
par défaut alors que tu n’as besoin que de CXX
.
- Tu
set
le standard par défaut en touchant à l’état global au lieu de celui de la target directement. C’est pas terrible, surtout si quelqu’un veut utiliser ton projet comme un subdirectory.
- Tu ajoutes
CMAKE_CURRENT_SOURCE_DIR
comme dossier include alors que… ça sert à rien.
En corrigeant tout ça, on obtient :
cmake_minimum_required(VERSION 3.13)
project(cpu_utilization LANGUAGES CXX)
add_executable(cpu_utilization src/cpu_utilization.cpp)
target_compile_features(cpu_utilization PRIVATE cxx_std_14)
Ensuite, à la compilation dans ton README
tu conseilles de compiler avec cmake . && make
. D’une part, c’est dommage de ne pas exploiter la possibilité de build hors-source, de partir du principe que le générateur sera Makefile et surtout de ne rien optimiser par défaut alors qu’il s’agit de la commande pour les utilisateurs finaux. cmake -DCMAKE_BUILD_TYPE=Release -B build && cmake --build build
s’affranchit de ces problèmes.
En parlant d’optimisations, je vois que tu as saupoudré le mot-clé inline
un peu partout. Il ne veut probablement pas dire ce que tu penses et dans ton cas servira au mieux d’indication au compilo qu’il peut inliner ces fonctions (à condition d’activer les optimisations!). Ce genre d’indications ne sont que très rarement utiles (les compilos sont très bon pour inliner), et surtout, comme n’importe quelle (tentative d’) optimisation, elle est prémature tant que t’as pas des mesures pour montrer que ça a un impact non négligeable et positif sur les performances.