diff options
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 461 |
1 files changed, 359 insertions, 102 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index ab62cad6..bf88934d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,61 +1,67 @@ -project(HardInfo) -cmake_minimum_required(VERSION 2.6) -cmake_policy(VERSION 2.6) - -set(HARDINFO_VERSION "0.6-alpha") -option(HARDINFO_NOSYNC "Disable database sync via libsoup" 1) -option(HARDINFO_GTK3 "Attempt to build for GTK3 (0/off for GTK2)" 0) -set(OVRARCH "" CACHE STRING "Override HARDINFO_ARCH value") +cmake_minimum_required(VERSION 3.0.0) +cmake_policy(VERSION 3.0.0) +project(hardinfo2) + +set(HARDINFO2_VERSION "2.0.3") + +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) + +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") -SET( CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ) +set(DISTRO "" CACHE STRING "Distro build version eg. 1.el(rpm) or 1(deb)") + +SET(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") include(GNUInstallDirs) if(${CMAKE_BUILD_TYPE} MATCHES [Dd]ebug) - set(HARDINFO_DEBUG 1) + set(HARDINFO2_DEBUG 1) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address") endif() if(${CMAKE_HOST_SYSTEM_NAME} MATCHES "Linux") - set(HARDINFO_OS "linux") + set(HARDINFO2_OS "linux") else() message(FATAL_ERROR "Unsupported operating system: ${CMAKE_HOST_SYSTEM_NAME}") endif() if(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "i[3-6]86") - set(HARDINFO_ARCH "x86") + set(HARDINFO2_ARCH "x86") elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "x86_64") - set(HARDINFO_ARCH "x86") + set(HARDINFO2_ARCH "x86") elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "(ppc|ppc32|ppc64|ppc64le)") - set(HARDINFO_ARCH "ppc") + set(HARDINFO2_ARCH "ppc") elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "mips") - set(HARDINFO_ARCH "mips") + set(HARDINFO2_ARCH "mips") elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "parisc.*") - set(HARDINFO_ARCH "parisc") + set(HARDINFO2_ARCH "parisc") elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "sparc{32,64}") - set(HARDINFO_ARCH "sparc") + set(HARDINFO2_ARCH "sparc") elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "arm.*") - set(HARDINFO_ARCH "arm") + set(HARDINFO2_ARCH "arm") elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "aarch64.*") - set(HARDINFO_ARCH "arm") + set(HARDINFO2_ARCH "arm") elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "ia64") - set(HARDINFO_ARCH "ia64") + set(HARDINFO2_ARCH "ia64") +elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "loongarch64") + set(HARDINFO2_ARCH "loongarch64") elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "alpha") - set(HARDINFO_ARCH "alpha") + set(HARDINFO2_ARCH "alpha") elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "s390.*") - set(HARDINFO_ARCH "s390") + set(HARDINFO2_ARCH "s390") elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "m68k") - set(HARDINFO_ARCH "m68k") + set(HARDINFO2_ARCH "m68k") elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "sh[3-5]") - set(HARDINFO_ARCH "sh") + set(HARDINFO2_ARCH "sh") elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "(riscv|riscv32|riscv64)") - set(HARDINFO_ARCH "riscv") + set(HARDINFO2_ARCH "riscv") else() message(FATAL_ERROR "Unsupported architecture: ${CMAKE_HOST_SYSTEM_PROCESSOR}") endif() if (OVRARCH) - set(HARDINFO_ARCH ${OVRARCH}) + set(HARDINFO2_ARCH ${OVRARCH}) endif() if (OVRCPUINFO) add_definitions(-DPROC_CPUINFO=${OVRCPUINFO}) @@ -65,61 +71,180 @@ if (OVRDTRROOT) add_definitions(-DDTR_ROOT=${OVRDTRROOT}) message(STATUS "/proc/device-tree override: ${OVRDTRROOT}") endif() -add_definitions(-DLOCALEDIR="${CMAKE_INSTALL_PREFIX}/share/locale") -message(STATUS "LOCALEDIR = ${CMAKE_INSTALL_PREFIX}/share/locale") +add_definitions(-DLOCALEDIR="${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LOCALEDIR}") +message(STATUS "LOCALEDIR = ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LOCALEDIR}") -message(STATUS "Building HardInfo for architecture: ${HARDINFO_OS}-${HARDINFO_ARCH}") +message(STATUS "Building HardInfo2 for architecture: ${HARDINFO2_OS}-${HARDINFO2_ARCH}") add_definitions("-std=gnu89") +#add_definitions("-Wno-deprecated-declarations") +#add_definitions("-Wextra") +add_definitions("-Wno-missing-field-initializers") +add_definitions("-Wformat") +add_definitions("-Wformat-security") + +set(PACKAGE_LIBSOUP2_MINVERSION 2.42) +#Actually needed for save settings, steal_pointer - FIXME +set(PACKAGE_LIBGLIB2_MINVERSION 2.44) +#set(PACKAGE_LIBGLIB2_MINVERSION 2.28) + +###################################DISTRO CHANGES############################### +#Please add all distro relates stuff here +SET(PACKAGE_MANPAGES 1) +set(RPM 0) +file(STRINGS /etc/os-release distro REGEX "^NAME=") +string(REGEX REPLACE "NAME=" "" distro "${distro}") +string(REGEX REPLACE "\"" "" distro "${distro}") +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(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*") + set(RPM 1) +endif() +#Package architecture +if(${RPM}) + set(PACKAGE_DELIMITER "-") + set(PACKAGE_ARCHITECTURE ".${CMAKE_HOST_SYSTEM_PROCESSOR}") +else() + set(PACKAGE_DELIMITER "_") + set(PACKAGE_ARCHITECTURE "_${CMAKE_HOST_SYSTEM_PROCESSOR}") + if(${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "x86_64") + 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) + string(REGEX REPLACE "[.].*" "" DISTRO_BUILD_VER ${DISTRO}) + set(CPACK_PACKAGE_VERSION "${HARDINFO2_VERSION}-${DISTRO_BUILD_VER}") + set(PACKAGE_DISTRO "${HARDINFO2_VERSION}-${DISTRO}") + if(${HARDINFO2_GTK3}) + else() + message(FATAL_ERROR "Distro-Building not supported with GTK2!!") + endif() +endif() +#Put it together +string(REPLACE " " "_" CPACK_PACKAGE_FILE_NAME "hardinfo${PACKAGE_DELIMITER}${PACKAGE_DISTRO}${PACKAGE_ARCHITECTURE}") +message("-- Found Package Target ${CPACK_PACKAGE_FILE_NAME}") +message("-- Found Package Version ${CPACK_PACKAGE_VERSION}") + +#flavour output +set(HARDINFO2_OS ${distro}) + +# currently all RPM flavours uses libsoup-2.4 +if(${RPM}) + set(HARDINFO2_LIBSOUP3 0) +endif() + +#oracle 6 +if(${distro}${disversion} MATCHES "Oracle6*") + set(HARDINFO2_LIBSOUP3 0) + set(HARDINFO2_GTK3 0) + #old deprecated version - but ok + set(PACKAGE_LIBSOUP2_MINVERSION 2.34.3) + #save settings disabled, steal_pointer disabled + set(PACKAGE_LIBGLIB2_MINVERSION 2.28.8) + message("-- Low GLIB2 version 2.28.0") +endif() + +#debian 8 +if(${distro}${disversion} MATCHES "DebianGNULinux8") + set(HARDINFO2_LIBSOUP3 0) + #save settings disabled, steal_pointer disabled + set(PACKAGE_LIBGLIB2_MINVERSION 2.42.1) + message("-- Low GLIB2 version 2.42.1") +endif() + +#ubuntu 20.04 +if(${distro}${disversion} MATCHES "Ubuntu20.04") + set(HARDINFO2_LIBSOUP3 0) +endif() + +#Debian 11 +if(${distro}${disversion} MATCHES "DebianGNULinux11") + set(HARDINFO2_LIBSOUP3 0) +endif() +#Fedora 39 - bug with man pages - probably needs upgrade.. +if(${distro}${disversion} MATCHES "FedoraLinux39") + set(PACKAGE_MANPAGES 0) +endif() + +################################################################################ add_subdirectory(po) + include(FindPkgConfig) -if (HARDINFO_GTK3) - message(STATUS "Building for GTK3 (experimental!)") - pkg_check_modules(GTK REQUIRED gtk+-3.0>=3.0 cairo>=1.0 cairo-png>=1.0 glib-2.0>=2.10 gthread-2.0>=2.10 gmodule-export-2.0>=2.10) - add_definitions(-DGTK_DISABLE_SINGLE_INCLUDES) +if (HARDINFO2_GTK3) + message(STATUS "Building for GTK3") + pkg_check_modules(GTK REQUIRED gtk+-3.0>=3.0 cairo>=1.0 cairo-png>=1.0 gthread-2.0>=2.10 gmodule-export-2.0>=2.10) + add_definitions(-DGTK_DISABLE_SINGLE_INCLUDES) else() - message(STATUS "Building for GTK2") - pkg_check_modules(GTK REQUIRED gtk+-2.0>=2.10 glib-2.0>=2.10 gthread-2.0>=2.10 gmodule-export-2.0>=2.10) + message(STATUS "Building for GTK2 - (Deprecated - Please update your distro!!)") + pkg_check_modules(GTK REQUIRED gtk+-2.0>=2.10 gthread-2.0>=2.10 gmodule-export-2.0>=2.10) endif() -if(NOT HARDINFO_NOSYNC) - pkg_check_modules(LIBSOUP libsoup-2.4>=2.24) +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}) endif() +pkg_check_modules(GLIB2 REQUIRED glib-2.0>=${PACKAGE_LIBGLIB2_MINVERSION}) +pkg_check_modules(JSON_GLIB REQUIRED json-glib-1.0>=0.14.2) +pkg_check_modules(X11 REQUIRED x11) include(FindZLIB REQUIRED) include_directories( ${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/includes - ${CMAKE_SOURCE_DIR}/includes/${HARDINFO_ARCH} - ${CMAKE_SOURCE_DIR}/deps/uber-graph/uber + ${CMAKE_SOURCE_DIR}/includes/${HARDINFO2_ARCH} + ${CMAKE_SOURCE_DIR}/deps/uber-graph + ${CMAKE_SOURCE_DIR}/deps/sysobj_early/include + ${CMAKE_SOURCE_DIR}/deps/sysobj_early/gui ${CMAKE_BINARY_DIR} ${GTK_INCLUDE_DIRS} ${LIBSOUP_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIRS} + ${X11_INCLUDE_DIRS} + ${JSON_GLIB_INCLUDE_DIRS} ) link_directories( ${GTK_LIBRARY_DIRS} ${LIBSOUP_LIBRARY_DIRS} + ${X11_LIBRARY_DIRS} + ${JSON_GLIB_LIBRARY_DIRS} ) -set(HARDINFO_MODULES +set(HARDINFO2_MODULES computer devices benchmark network ) -set(HARDINFO_RESOURCES - "benchmark.conf" - "benchmark.data" +set(HARDINFO2_RESOURCES + "data/benchmark.data" + "data/benchmark.json" + "data/vendor.ids" + "data/sdcard.ids" + "data/usb.ids" + "data/arm.ids" + "data/edid.ids" + "data/ieee_oui.ids" + "data/pci.ids.min" + "data/kernel-module-icons.json" ) - -set(HARDINFO_MANPAGES - "hardinfo.1" +if(${PACKAGE_MANPAGES}) +set(HARDINFO2_MANPAGES + "hardinfo2.1" ) - +endif() set(MODULE_computer_SOURCES modules/computer.c modules/computer/alsa.c @@ -130,25 +255,30 @@ set(MODULE_computer_SOURCES modules/computer/languages.c modules/computer/loadavg.c modules/computer/memory.c + modules/computer/memory_usage.c modules/computer/modules.c modules/computer/os.c + modules/computer/ubuntu_flavors.c modules/computer/uptime.c modules/computer/users.c modules/computer/groups.c ) set(MODULE_devices_SOURCES modules/devices.c - modules/devices/${HARDINFO_ARCH}/processor.c + modules/devices/${HARDINFO2_ARCH}/processor.c + modules/devices/gpu.c + modules/devices/monitors.c modules/devices/battery.c - modules/devices/devmemory.c modules/devices/dmi.c + modules/devices/dmi_memory.c + modules/devices/firmware.c modules/devices/devicetree.c modules/devices/inputdevices.c modules/devices/pci.c modules/devices/printers.c modules/devices/resources.c modules/devices/sensors.c - modules/devices/spd-decode.c +# modules/devices/spd-decode.c modules/devices/storage.c modules/devices/usb.c ) @@ -160,9 +290,10 @@ set(MODULE_network_SOURCES ) set(MODULE_benchmark_SOURCES_GTKANY modules/benchmark.c + modules/benchmark/bench_util.c modules/benchmark/blowfish.c + modules/benchmark/blowfish2.c modules/benchmark/cryptohash.c - modules/benchmark/drawing.c modules/benchmark/fbench.c modules/benchmark/fftbench.c modules/benchmark/fft.c @@ -172,11 +303,13 @@ set(MODULE_benchmark_SOURCES_GTKANY modules/benchmark/raytrace.c modules/benchmark/sha1.c modules/benchmark/zlib.c + modules/benchmark/sysbench.c ) set(MODULE_benchmark_SOURCES_GTK2 + modules/benchmark/drawing.c modules/benchmark/guibench.c ) -if (HARDINFO_GTK3) +if (HARDINFO2_GTK3) set(MODULE_benchmark_SOURCES ${MODULE_benchmark_SOURCES_GTKANY}) else() set(MODULE_benchmark_SOURCES ${MODULE_benchmark_SOURCES_GTKANY} ${MODULE_benchmark_SOURCES_GTK2}) @@ -191,39 +324,94 @@ set_source_files_properties( COMPILE_FLAGS "-O0" ) -foreach (_module ${HARDINFO_MODULES}) +set_source_files_properties( + modules/devices/monitors.c + modules/devices/dmi_memory.c +# modules/devices/spd-decode.c + hardinfo2/problem_marker.c + hardinfo2/hinote_util.c + PROPERTIES + COMPILE_FLAGS "-std=c99 -Wall -Wextra -Wno-unused-function -Wno-deprecated-declarations -Wno-switch" +) + +foreach (_module ${HARDINFO2_MODULES}) add_library(${_module} MODULE ${MODULE_${_module}_SOURCES}) set_target_properties(${_module} PROPERTIES PREFIX "") + target_link_libraries(${_module} ${JSON_GLIB_LIBRARIES}) endforeach() -if (HARDINFO_GTK3) +find_library(LIBSENSORS_LIBRARY NAMES libsensors.so) +if (LIBSENSORS_LIBRARY) + set(HAS_LIBSENSORS 1) + target_link_libraries(devices ${LIBSENSORS_LIBRARY}) +endif () + +add_library(sysobj_early STATIC + deps/sysobj_early/src/gg_slist.c + deps/sysobj_early/src/strstr_word.c + deps/sysobj_early/src/auto_free.c + deps/sysobj_early/src/util_ids.c + deps/sysobj_early/src/util_sysobj.c + deps/sysobj_early/src/appf.c + deps/sysobj_early/src/nice_name.c + deps/sysobj_early/gui/uri_handler.c + deps/sysobj_early/src/util_edid.c + deps/sysobj_early/src/format_early.c + deps/sysobj_early/src/cpubits.c +) +set_target_properties(sysobj_early PROPERTIES COMPILE_FLAGS "-std=c99 -Wall -Wextra -Wno-parentheses -Wno-unused-function") +target_link_libraries(sysobj_early m) + +if (HARDINFO2_GTK3) add_library(uber-graph STATIC - deps/uber-graph/uber/g-ring.c - deps/uber-graph/uber/uber-frame-source.c - deps/uber-graph/uber/uber-graph.c - deps/uber-graph/uber/uber-heat-map.c - deps/uber-graph/uber/uber-label.c - deps/uber-graph/uber/uber-line-graph.c - deps/uber-graph/uber/uber-range.c - deps/uber-graph/uber/uber-scale.c - deps/uber-graph/uber/uber-scatter.c - deps/uber-graph/uber/uber-timeout-interval.c - deps/uber-graph/uber/uber-window.c + deps/uber-graph/g-ring.c + deps/uber-graph/uber-frame-source.c + deps/uber-graph/uber-graph.c + deps/uber-graph/uber-heat-map.c + deps/uber-graph/uber-label.c + deps/uber-graph/uber-line-graph.c + deps/uber-graph/uber-range.c + deps/uber-graph/uber-scale.c + deps/uber-graph/uber-scatter.c + deps/uber-graph/uber-timeout-interval.c + deps/uber-graph/uber-window.c ) +set_target_properties(uber-graph PROPERTIES COMPILE_FLAGS "-Wno-deprecated-declarations") endif() -if (HARDINFO_GTK3) -add_executable(hardinfo - hardinfo/binreloc.c - hardinfo/expr.c - hardinfo/hardinfo.c - hardinfo/socket.c - hardinfo/util.c - hardinfo/vendor.c - hardinfo/info.c - hardinfo/cpu_util.c - hardinfo/dmi_util.c - hardinfo/dt_util.c +set_source_files_properties( + hardinfo2/usb_util.c + hardinfo2/pci_util.c + hardinfo2/gpu_util.c + hardinfo2/cpu_util.c + hardinfo2/x_util.c + hardinfo2/dt_util.c + PROPERTIES + COMPILE_FLAGS "-Wall -Wextra -Wno-parentheses -Wno-unused-function" +) + +if (HARDINFO2_GTK3) +add_executable(hardinfo2 + hardinfo2/usb_util.c + hardinfo2/pci_util.c + hardinfo2/binreloc.c + hardinfo2/expr.c + hardinfo2/hardinfo.c + hardinfo2/socket.c + hardinfo2/util.c + hardinfo2/gg_key_file_parse_string_as_value.c + hardinfo2/gg_strescape.c + hardinfo2/problem_marker.c + hardinfo2/hinote_util.c + hardinfo2/vendor.c + hardinfo2/info.c + hardinfo2/cpu_util.c + hardinfo2/dmi_util.c + hardinfo2/dt_util.c + hardinfo2/x_util.c + hardinfo2/gpu_util.c + hardinfo2/udisks2_util.c + hardinfo2/storage_util.c shell/callbacks.c shell/iconcache.c shell/menu.c @@ -233,25 +421,39 @@ add_executable(hardinfo shell/syncmanager.c shell/loadgraph-uber.c ) -target_link_libraries(hardinfo +target_link_libraries(hardinfo2 + -Wl,-whole-archive sysobj_early -Wl,-no-whole-archive uber-graph ${GTK_LIBRARIES} ${LIBSOUP_LIBRARIES} m ${ZLIB_LIBRARIES} + ${X11_LIBRARIES} + ${JSON_GLIB_LIBRARIES} ) +set_target_properties(hardinfo2 PROPERTIES COMPILE_FLAGS "-Wno-deprecated-declarations") else() -add_executable(hardinfo - hardinfo/binreloc.c - hardinfo/expr.c - hardinfo/hardinfo.c - hardinfo/socket.c - hardinfo/util.c - hardinfo/vendor.c - hardinfo/info.c - hardinfo/cpu_util.c - hardinfo/dmi_util.c - hardinfo/dt_util.c +add_executable(hardinfo2 + hardinfo2/usb_util.c + hardinfo2/pci_util.c + hardinfo2/binreloc.c + hardinfo2/expr.c + hardinfo2/hardinfo.c + hardinfo2/socket.c + hardinfo2/util.c + hardinfo2/gg_key_file_parse_string_as_value.c + hardinfo2/gg_strescape.c + hardinfo2/problem_marker.c + hardinfo2/hinote_util.c + hardinfo2/vendor.c + hardinfo2/info.c + hardinfo2/cpu_util.c + hardinfo2/dmi_util.c + hardinfo2/dt_util.c + hardinfo2/x_util.c + hardinfo2/gpu_util.c + hardinfo2/udisks2_util.c + hardinfo2/storage_util.c shell/callbacks.c shell/iconcache.c shell/menu.c @@ -261,41 +463,96 @@ add_executable(hardinfo shell/syncmanager.c shell/loadgraph.c ) -target_link_libraries(hardinfo +target_link_libraries(hardinfo2 + -Wl,-whole-archive sysobj_early -Wl,-no-whole-archive ${GTK_LIBRARIES} ${LIBSOUP_LIBRARIES} m ${ZLIB_LIBRARIES} + ${X11_LIBRARIES} + ${JSON_GLIB_LIBRARIES} ) endif() configure_file(config.h.cmake ${CMAKE_BINARY_DIR}/config.h @ONLY) -configure_file(hardinfo.desktop.cmake ${CMAKE_BINARY_DIR}/hardinfo.desktop @ONLY) +configure_file(hardinfo2.desktop.cmake ${CMAKE_BINARY_DIR}/hardinfo2.desktop @ONLY) -install(TARGETS hardinfo ${HARDINFO_MODULES} +install(TARGETS hardinfo2 ${HARDINFO2_MODULES} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/hardinfo/modules + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/hardinfo2/modules PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) -install(FILES ${CMAKE_BINARY_DIR}/hardinfo.desktop +install(FILES ${CMAKE_BINARY_DIR}/hardinfo2.desktop DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) -install(FILES ${HARDINFO_RESOURCES} - DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/hardinfo +install(FILES ${HARDINFO2_RESOURCES} + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/hardinfo2 PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) install(DIRECTORY pixmaps - DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/hardinfo + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/hardinfo2 PATTERN "*.{png,svg}" PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) -install(DIRECTORY doc - DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/hardinfo - PATTERN "*.{hlp,png}" +install(FILES ${HARDINFO2_MANPAGES} + DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) -install(FILES ${HARDINFO_MANPAGES} - DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/man/man1 +install(FILES pixmaps/hardinfo2.png + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/256x256/apps PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) + +########################PACKAGE BUILDING FOR DISTROS########################### +#Please update here for building packages +#keep package name as hardinfo to allow for upgrading in distro +SET(CPACK_PACKAGE_NAME "hardinfo") +SET(CPACK_PACKAGE_HOMEPAGE_URL "https://www.hardinfo2.org") +if(${RPM}) + SET(CPACK_GENERATOR "RPM") + SET(PACKAGE_GTK2 "libgtk-2-0") +else() + SET(CPACK_GENERATOR "DEB") + SET(PACKAGE_GTK2 "libgtk2.0-0") +endif() + +#RPM +SET(CPACK_RPM_PACKAGE_MAINTAINER "hwspeedy <hardinfo2@bigbear.dk>") +SET(CPACK_RPM_PACKAGE_DESCRIPTION "Hardinfo2 is a small application that displays information about your hardware and operating system. It has online benchmarking to check your machine performance against other machines.") +SET(CPACK_RPM_PACKAGE_RECOMMENDS "sysbench, udisks2, mesa-utils, lsscsi, lm-sensors, xdg-utils") +SET(CPACK_RPM_PACKAGE_LICENSE "GPL2+") +SET(CPACK_RPM_PACKAGE_HOMEPAGE "https://github.com/hardinfo2/hardinfo2") +if(HARDINFO2_LIBSOUP3) + SET(PACKAGE_LS "libsoup (>=3.0)") +else() + SET(PACKAGE_LS "libsoup (>=${PACKAGE_LIBSOUP2_MINVERSION})") +endif() +if(HARDINFO2_GTK3) + SET(PACKAGE_GTK "libgtk-3-0 (>=3.0)") +else() + SET(PACKAGE_GTK "${PACKAGE_GTK2} (>=2.20)") +endif() +SET(CPACK_RPM_PACKAGE_DEPENDS "libjson-glib-1.0-0, zlib, ${PACKAGE_LS}, ${PACKAGE_GTK}, libglib2.0-0 (>=2.10)") + +#DEB +SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "hwspeedy <hardinfo2@bigbear.dk>") +SET(CPACK_DEBIAN_PACKAGE_DESCRIPTION "Hardinfo2 is a small application that displays information about your hardware and operating system. It has online benchmarking to check your machine performance against other machines.") +SET(CPACK_DEBIAN_PACKAGE_RECOMMENDS "sysbench, udisks2, mesa-utils, lsscsi, lm-sensors, xdg-utils") +SET(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://github.com/hardinfo2/hardinfo2") +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") + SET(PACKAGE_LS "libsoup2.4-0 (>=2.42)") + endif() +endif() +if(HARDINFO2_GTK3) + SET(PACKAGE_GTK "libgtk-3-0 (>=3.0)") +else() + SET(PACKAGE_GTK "${PACKAGE_GTK2} (>=2.20)") +endif() +SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libjson-glib-1.0-0, zlib1g, ${PACKAGE_LS}, ${PACKAGE_GTK}") + +INCLUDE(CPack) |