Unverified Commit cf42e130 authored by Gaétan Lepage's avatar Gaétan Lepage Committed by GitHub
Browse files

nanomsg, libcsptr, lemon-graph: CMake 4.0 fixes (#449046)

parents 586e3c29 f5eacdf2
Loading
Loading
Loading
Loading
+95 −0
Original line number Diff line number Diff line
From 0073156cc16cecc597902e9294e4996dafacc1a3 Mon Sep 17 00:00:00 2001
From: hiaselhans <simon.klemenc@gmail.com>
Date: Wed, 21 May 2025 08:12:37 +0200
Subject: [PATCH] update cmake to work with newer versions

---
 .gitignore     |  1 +
 CMakeLists.txt | 61 +++++++++-----------------------------------------
 2 files changed, 11 insertions(+), 51 deletions(-)
 create mode 100644 .gitignore

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..c795b05
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+build
\ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 03e1cc7..26ec718 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,61 +1,20 @@
-CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
-
-CMAKE_POLICY(SET CMP0048 OLD)
+CMAKE_MINIMUM_REQUIRED(VERSION 3.12...5.0)
 
 SET(PROJECT_NAME "LEMON")
-PROJECT(${PROJECT_NAME})
-
-INCLUDE(FindPythonInterp)
-INCLUDE(FindWget)
 
-IF(EXISTS ${PROJECT_SOURCE_DIR}/cmake/version.cmake)
-  INCLUDE(${PROJECT_SOURCE_DIR}/cmake/version.cmake)
-ELSEIF(DEFINED ENV{LEMON_VERSION})
+IF(DEFINED ENV{LEMON_VERSION})
   SET(LEMON_VERSION $ENV{LEMON_VERSION} CACHE STRING "LEMON version string.")
+ELSEIF(EXISTS ${CMAKE_SOURCE_DIR}/cmake/version.cmake)
+  INCLUDE(${CMAKE_SOURCE_DIR}/cmake/version.cmake)
 ELSE()
-  EXECUTE_PROCESS(
-    COMMAND
-    hg log -r. --template "{latesttag}"
-    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
-    OUTPUT_VARIABLE HG_REVISION_TAG
-    ERROR_QUIET
-    OUTPUT_STRIP_TRAILING_WHITESPACE
-  )
-  EXECUTE_PROCESS(
-    COMMAND
-    hg log -r. --template "{latesttagdistance}"
-    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
-    OUTPUT_VARIABLE HG_REVISION_DIST
-    ERROR_QUIET
-    OUTPUT_STRIP_TRAILING_WHITESPACE
-  )
-  EXECUTE_PROCESS(
-    COMMAND
-    hg log -r. --template "{node|short}"
-    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
-    OUTPUT_VARIABLE HG_REVISION_ID
-    ERROR_QUIET
-    OUTPUT_STRIP_TRAILING_WHITESPACE
-  )
+  MESSAGE(FATAL_ERROR "LEMON_VERSION is not defined. Please set it in the environment")
+ENDIF()
 
-  IF(HG_REVISION_TAG STREQUAL "")
-    SET(HG_REVISION_ID "hg-tip")
-  ELSE()
-    IF(HG_REVISION_TAG STREQUAL "null")
-      SET(HG_REVISION_TAG "trunk")
-    ELSEIF(HG_REVISION_TAG MATCHES "^r")
-      STRING(SUBSTRING ${HG_REVISION_TAG} 1 -1 HG_REVISION_TAG)
-    ENDIF()
-    IF(HG_REVISION_DIST STREQUAL "0")
-      SET(HG_REVISION ${HG_REVISION_TAG})
-    ELSE()
-      SET(HG_REVISION
-	"${HG_REVISION_TAG}+${HG_REVISION_DIST}-${HG_REVISION_ID}")
-    ENDIF()
-  ENDIF()
 
-  SET(LEMON_VERSION ${HG_REVISION} CACHE STRING "LEMON version string.")
-ENDIF()
+PROJECT(${PROJECT_NAME} VERSION ${LEMON_VERSION})
+
+find_package(Python3 REQUIRED COMPONENTS Interpreter)
+INCLUDE(FindWget)
 
 SET(PROJECT_VERSION ${LEMON_VERSION})
 
+5 −0
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@
  stdenv,
  fetchurl,
  cmake,
  python3,
}:

stdenv.mkDerivation rec {
@@ -14,6 +15,7 @@ stdenv.mkDerivation rec {
    sha256 = "1j6kp9axhgna47cfnmk1m7vnqn01hwh7pf1fp76aid60yhjwgdvi";
  };

  buildInputs = [ python3 ];
  nativeBuildInputs = [ cmake ];

  # error: no viable conversion from ...
@@ -22,6 +24,9 @@ stdenv.mkDerivation rec {
  patches = [
    # error: ISO C++17 does not allow 'register' storage class specifier
    ./remove-register.patch

    # fix cmake compatibility. vendored from https://github.com/The-OpenROAD-Project/lemon-graph/pull/2
    ./cmake_version.patch
  ];

  meta = with lib; {
+4 −0
Original line number Diff line number Diff line
@@ -18,6 +18,10 @@ stdenv.mkDerivation rec {

  nativeBuildInputs = [ cmake ];

  cmakeFlags = [
    (lib.cmakeFeature "CMAKE_POLICY_VERSION_MINIMUM" "3.5")
  ];

  meta = with lib; {
    description = "Smart pointer constructs for the (GNU) C programming language";
    homepage = "https://github.com/Snaipe/libcsptr";
+6 −1
Original line number Diff line number Diff line
@@ -21,7 +21,12 @@ stdenv.mkDerivation rec {
    # Add pkgconfig fix from https://github.com/nanomsg/nanomsg/pull/1085
    (fetchpatch {
      url = "https://github.com/nanomsg/nanomsg/commit/e3323f19579529d272cb1d55bd6b653c4f34c064.patch";
      sha256 = "URz7TAqqpKxqjgvQqNX4WNSShwiEzAvO2h0hCZ2NhVY=";
      hash = "sha256-URz7TAqqpKxqjgvQqNX4WNSShwiEzAvO2h0hCZ2NhVY=";
    })
    # Fix compatibility with Cmake 4.0 and up
    (fetchpatch {
      url = "https://github.com/nanomsg/nanomsg/commit/eb24489839de3e2419360c67cc38842f223836d9.patch";
      hash = "sha256-yaQWWZLW4YbiI41oV0nj7zap3lEs0Gwwb9kTD6o3La8=";
    })
  ];