diff options
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 139 |
1 files changed, 54 insertions, 85 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index b03ef737..ed157d2f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,17 +2,10 @@ cmake_minimum_required(VERSION 3.0.0) cmake_policy(VERSION 3.0.0) project(hardinfo2) -set(HARDINFO2_VERSION "2.0.15") +set(HARDINFO2_VERSION "2.0.17") option(HARDINFO2_GTK3 "Build for GTK3 (0/off for GTK2)" 1) -option(HARDINFO2_LIBSOUP3 "Build for libsoup-3.0(EXPERIMENTAL) (0/off for libsoup-2.4)" 0) - -#old/unused deprecated - lets us know if anyone uses these below -set(DISTRO "" CACHE STRING "Distro build version eg. 1.el(rpm) or 1(deb)") -set(MAINTAINER "" CACHE STRING "Distro maintainer 'name <email>'") -set(OVRARCH "" CACHE STRING "Override HARDINFO2_ARCH value") -set(OVRCPUINFO "" CACHE STRING "Specify a different file for /proc/cpuinfo") -set(OVRDTRROOT "" CACHE STRING "Specify a different path for /proc/device-tree") +option(HARDINFO2_LIBSOUP3 "Build for libsoup-3.0 (0/off for libsoup-2.4)" 1) SET(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") include(GNUInstallDirs) @@ -57,17 +50,6 @@ else() message(FATAL_ERROR "Unsupported architecture: ${CMAKE_HOST_SYSTEM_PROCESSOR}") endif() -if (OVRARCH) - set(HARDINFO2_ARCH ${OVRARCH}) -endif() -if (OVRCPUINFO) - add_definitions(-DPROC_CPUINFO=${OVRCPUINFO}) - message(STATUS "/proc/cpuinfo override: ${OVRCPUINFO}") -endif() -if (OVRDTRROOT) - add_definitions(-DDTR_ROOT=${OVRDTRROOT}) - message(STATUS "/proc/device-tree override: ${OVRDTRROOT}") -endif() add_definitions(-DLOCALEDIR="${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LOCALEDIR}") message(STATUS "LOCALEDIR = ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LOCALEDIR}") @@ -83,8 +65,7 @@ add_definitions("-Wformat-security") set(PACKAGE_LIBSOUP2_MINVERSION 2.42) set(PACKAGE_LIBGLIB2_MINVERSION 2.24) -###################################DISTRO CHANGES############################### -#Please add all distro relates stuff here +#########################CPack PACKAGING SETUP############################### set(RPM 0) file(STRINGS /etc/os-release distro REGEX "^NAME=") string(REGEX REPLACE "NAME=" "" distro "${distro}") @@ -93,11 +74,18 @@ string(REGEX REPLACE "/" "" distro "${distro}") string(REGEX REPLACE " " "" distro "${distro}") file(STRINGS /etc/os-release disversion REGEX "^VERSION_ID=") string(REGEX REPLACE "VERSION_ID=" "" disversion "${disversion}") +string(COMPARE EQUAL "${disversion}" "" result) +if(result) + #sid/rawhide with no version - use project name + message("-- Found no distro version - Using codename") + file(STRINGS /etc/os-release disversion REGEX "^VERSION_CODENAME=") + string(REGEX REPLACE "VERSION_CODENAME=" "" disversion "99_${disversion}") +endif() string(REGEX REPLACE "\"" "" disversion "${disversion}") string(REGEX REPLACE "/" "" disversion "${disversion}") string(REGEX REPLACE " " "" disversion "${disversion}") #RPM Distro's -if(${distro} MATCHES "Alma*" OR ${distro} MATCHES "Rocky*" OR ${distro} MATCHES "Fedora*" OR ${distro} MATCHES "Red*" OR ${distro} MATCHES "CentOS*" OR ${distro} MATCHES "Oracle*" OR ${distro} MATCHES "openSUSE*") +if(${distro} MATCHES "Alma*" OR ${distro} MATCHES "Rocky*" OR ${distro} MATCHES "Fedora*" OR ${distro} MATCHES "Red*" OR ${distro} MATCHES "CentOS*" OR ${distro} MATCHES "Oracle*" OR ${distro} MATCHES "openSUSE*" OR ${distro} MATCHES "SUSE*") set(RPM 1) endif() #Package architecture @@ -111,83 +99,72 @@ else() set(PACKAGE_ARCHITECTURE "_amd64") endif() endif() -#Package Distro build version - part of package name set(PACKAGE_DISTRO ${HARDINFO2_VERSION}-${distro}-${disversion}${CPACK_SYSTEM_NAME}) SET(CPACK_PACKAGE_VERSION ${HARDINFO2_VERSION}) -if(DISTRO) - message("-- DISTRO BUILD") - string(REGEX REPLACE "[.].*" "" DISTRO_BUILD_VER ${DISTRO}) - set(CPACK_PACKAGE_VERSION "${HARDINFO2_VERSION}-${DISTRO_BUILD_VER}") - set(PACKAGE_DISTRO "${HARDINFO2_VERSION}-${DISTRO}") - if(${DISTRO_BUILD_VER} MATCHES "src") - SET(CPACK_RPM_USER_BINARY_SPECFILE "hardinfo2.spec") - set(CPACK_PACKAGE_VERSION "${HARDINFO2_VERSION}") - set(PACKAGE_DISTRO "${HARDINFO2_VERSION}") - endif() - if(${HARDINFO2_GTK3}) - else() - message(FATAL_ERROR "Distro-Building not supported with GTK2!!") - endif() - if(MAINTAINER) - set(PACKAGE_MAINTAINER ${MAINTAINER}) - else() - set(PACKAGE_MAINTAINER "hwspeedy <hardinfo2@bigbear.dk>") - endif() -else() - set(PACKAGE_MAINTAINER "hwspeedy <hardinfo2@bigbear.dk>") -endif() #Put it together string(REPLACE " " "${PACKAGE_DELIMITER}" CPACK_PACKAGE_FILE_NAME "hardinfo2${PACKAGE_DELIMITER}${PACKAGE_DISTRO}${PACKAGE_ARCHITECTURE}") -if(${RPM}) - string(REPLACE " " "-" CPACK_SOURCE_PACKAGE_FILE_NAME "hardinfo2-${PACKAGE_DISTRO}") -else() - string(REPLACE " " "_" CPACK_SOURCE_PACKAGE_FILE_NAME "hardinfo2-${HARDINFO2_VERSION}") -endif() -message("-- Found Package Target ${CPACK_PACKAGE_FILE_NAME}") +string(REPLACE " " "${PACKAGE_DELIMITER}" CPACK_SOURCE_PACKAGE_FILE_NAME "hardinfo2${PACKAGE_DELIMITER}${PACKAGE_DISTRO}${PACKAGE_ARCHITECTURE}") message("-- Found Package Version ${CPACK_PACKAGE_VERSION}") +message("-- Found distro description ${distro}${disversion}") #flavour output set(HARDINFO2_OS ${distro}) -# currently all RPM flavours uses libsoup-2.4 -if(${RPM}) - set(HARDINFO2_LIBSOUP3 0) +#fedora ->35 +if(${disversion} LESS 35.99) + if(${distro} MATCHES "Fedora*") + message("Fedora ->35 - LS24") + set(HARDINFO2_LIBSOUP3 0) + endif() endif() -#oracle 6 -if(${distro}${disversion} MATCHES "Oracle6*") +#centos/redhat/oracle/opensuse/suse ->9 +if(${disversion} LESS 9.99) + if(${distro} MATCHES "Red*" OR ${distro} MATCHES "CentOS*" OR ${distro} MATCHES "Oracle*" OR ${distro} MATCHES "openSUSE*" OR ${distro} MATCHES "Alma*" OR ${distro} MATCHES "Rocky*") + message("Centos/Redhat/oracle/opensuse/suse/rocky/alma ->9 - LS24") set(HARDINFO2_LIBSOUP3 0) + endif() +endif() + +#centos/redhat/oracle/opensuse/suse 6 +if(${disversion} LESS 6.99) + if((${distro} MATCHES "Red*" OR ${distro} MATCHES "CentOS*" OR ${distro} MATCHES "Oracle*" OR ${distro} MATCHES "openSUSE*" OR ${distro} MATCHES "SUSE*")) + message("RPM EL6 - GTK2 - deprecated - support will end at any time") + message("RPM EL6 - LS24 - deprecated version 2.34.3 - but ok") set(HARDINFO2_GTK3 0) - #old deprecated version - but ok set(PACKAGE_LIBSOUP2_MINVERSION 2.34.3) + endif() endif() #debian 7 if(${distro}${disversion} MATCHES "DebianGNULinux7") - set(HARDINFO2_LIBSOUP3 0) + message("DEB 7 - GTK2 to avoid c11 for ubergraph - deprecated - support will end at any time") + message("DEB 7 - LS24 - deprecated version 2.34.3 - but ok") set(HARDINFO2_GTK3 0) - #old deprecated version - but ok set(PACKAGE_LIBSOUP2_MINVERSION 2.34.3) endif() -#debian 8 -if(${distro}${disversion} MATCHES "DebianGNULinux8") +#debian ->11 +if(${disversion} LESS 11.99) + if(${distro} MATCHES "DebianGNULinux") + message("DEB ->11 - LS24") set(HARDINFO2_LIBSOUP3 0) + endif() endif() #ubuntu 20.04 -if(${distro}${disversion} MATCHES "Ubuntu20.04") +if(${disversion} LESS 20.99) + if(${distro} MATCHES "Ubuntu") + message("Ubuntu ->20.xx - LS24") set(HARDINFO2_LIBSOUP3 0) + endif() endif() -#Debian 11 -if(${distro}${disversion} MATCHES "DebianGNULinux11") - set(HARDINFO2_LIBSOUP3 0) -endif() #Fedora 39 - bug with man pages - upgrade cmake to 3.28.x ################################################################################ + if(${CMAKE_BUILD_TYPE} MATCHES [Dd]ebug) set(HARDINFO2_DEBUG 1) if(${distro}${disversion} MATCHES "DebianGNULinux7") @@ -208,7 +185,7 @@ else() pkg_check_modules(GTK REQUIRED gtk+-2.0>=2.10 gthread-2.0>=2.10 gmodule-export-2.0>=2.10) endif() -if (HARDINFO2_LIBSOUP3) +if (${HARDINFO2_LIBSOUP3}) pkg_check_modules(LIBSOUP REQUIRED libsoup-3.0>=3.00) else() pkg_check_modules(LIBSOUP REQUIRED libsoup-2.4>=${PACKAGE_LIBSOUP2_MINVERSION}) @@ -305,7 +282,7 @@ set(MODULE_network_SOURCES modules/network/nfs.c modules/network/samba.c ) -set(MODULE_benchmark_SOURCES_GTKANY +set(MODULE_benchmark_SOURCES modules/benchmark.c modules/benchmark/bench_util.c modules/benchmark/blowfish.c @@ -322,16 +299,9 @@ set(MODULE_benchmark_SOURCES_GTKANY modules/benchmark/zlib.c modules/benchmark/sysbench.c modules/benchmark/iperf3.c -) -set(MODULE_benchmark_SOURCES_GTK2 modules/benchmark/drawing.c modules/benchmark/guibench.c ) -if (HARDINFO2_GTK3) - set(MODULE_benchmark_SOURCES ${MODULE_benchmark_SOURCES_GTKANY}) -else() - set(MODULE_benchmark_SOURCES ${MODULE_benchmark_SOURCES_GTKANY} ${MODULE_benchmark_SOURCES_GTK2}) -endif() set_source_files_properties( modules/benchmark/blowfish.c @@ -496,7 +466,7 @@ configure_file(config.h.cmake ${CMAKE_BINARY_DIR}/config.h @ONLY) configure_file(hardinfo2.desktop.cmake ${CMAKE_BINARY_DIR}/hardinfo2.desktop @ONLY) install(TARGETS hardinfo2 ${HARDINFO2_MODULES} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/hardinfo2/modules PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) @@ -522,8 +492,8 @@ install(FILES pixmaps/hardinfo2.png PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) -########################PACKAGE BUILDING FOR DISTROS########################### -#Please update here for building packages +########################CPack PACKAGE BUILDING########################### + SET(CPACK_PACKAGE_HOMEPAGE_URL "https://www.hardinfo2.org") if(${RPM}) set(CPACK_PACKAGING_INSTALL_PREFIX "/usr") @@ -540,14 +510,13 @@ endif() #RPM SET(CPACK_RPM_PACKAGE_OBSOLETES "hardinfo") -SET(CPACK_RPM_PACKAGE_MAINTAINER ${PACKAGE_MAINTAINER}) +SET(CPACK_RPM_PACKAGE_MAINTAINER "hwspeedy <hardinfo2@bigbear.dk>") SET(CPACK_RPM_PACKAGE_DESCRIPTION "Hardinfo2 - System Information and Benchmark") SET(CPACK_RPM_PACKAGE_RECOMMENDS "sysbench, udisks2, mesa-utils, lsscsi, lm-sensors, xdg-utils, iperf3") SET(CPACK_RPM_PACKAGE_LICENSE "GPL2+") SET(CPACK_RPM_PACKAGE_HOMEPAGE "https://github.com/hardinfo2/hardinfo2") SET(CPACK_RPM_PACKAGE_URL "https://www.hardinfo2.org") -#SET(CPACK_RPM_SOURCE_PKG_BUILD_PARAMS "-DDISTRO=1") -if(HARDINFO2_LIBSOUP3) +if(${HARDINFO2_LIBSOUP3}) SET(PACKAGE_LS "libsoup (>=3.0)") else() SET(PACKAGE_LS "libsoup (>=${PACKAGE_LIBSOUP2_MINVERSION})") @@ -562,12 +531,12 @@ SET(CPACK_RPM_PACKAGE_DEPENDS "libjson-glib-1.0-0, zlib, ${PACKAGE_LS}, ${PACKAG #DEB SET(CPACK_DEBIAN_PACKAGE_REPLACES "hardinfo") SET(CPACK_DEBIAN_PACKAGE_BREAKS "hardinfo") -SET(CPACK_DEBIAN_PACKAGE_MAINTAINER ${PACKAGE_MAINTAINER}) +SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "hwspeedy <hardinfo2@bigbear.dk>") SET(CPACK_DEBIAN_PACKAGE_DESCRIPTION "Hardinfo2 - System Information and Benchmark") SET(CPACK_DEBIAN_PACKAGE_RECOMMENDS "sysbench, udisks2, mesa-utils, lsscsi, lm-sensors, xdg-utils, iperf3") SET(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://github.com/hardinfo2/hardinfo2") -if(HARDINFO2_LIBSOUP3) - SET(PACKAGE_LS "libsoup-3.0.0 (>=3.0)") +if(${HARDINFO2_LIBSOUP3}) + SET(PACKAGE_LS "libsoup-3.0-0 (>=3.0)") else() SET(PACKAGE_LS "libsoup2.4-1 (>=${PACKAGE_LIBSOUP2_MINVERSION})") if(${distro}${disversion} MATCHES "Debian GNU/Linux11") |