Skip to content

Commit f5eacdf

Browse files
committed
lemon-graph: fix build with CMake 4.0
Pull in The-OpenROAD-Project/lemon-graph#2. Upstream seems to be down (at least currently), and while this is an unofficial fork, the patch applies cleanly and fixes the build.
1 parent c18cbf8 commit f5eacdf

File tree

2 files changed

+100
-0
lines changed

2 files changed

+100
-0
lines changed
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
From 0073156cc16cecc597902e9294e4996dafacc1a3 Mon Sep 17 00:00:00 2001
2+
From: hiaselhans <simon.klemenc@gmail.com>
3+
Date: Wed, 21 May 2025 08:12:37 +0200
4+
Subject: [PATCH] update cmake to work with newer versions
5+
6+
---
7+
.gitignore | 1 +
8+
CMakeLists.txt | 61 +++++++++-----------------------------------------
9+
2 files changed, 11 insertions(+), 51 deletions(-)
10+
create mode 100644 .gitignore
11+
12+
diff --git a/.gitignore b/.gitignore
13+
new file mode 100644
14+
index 0000000..c795b05
15+
--- /dev/null
16+
+++ b/.gitignore
17+
@@ -0,0 +1 @@
18+
+build
19+
\ No newline at end of file
20+
diff --git a/CMakeLists.txt b/CMakeLists.txt
21+
index 03e1cc7..26ec718 100644
22+
--- a/CMakeLists.txt
23+
+++ b/CMakeLists.txt
24+
@@ -1,61 +1,20 @@
25+
-CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
26+
-
27+
-CMAKE_POLICY(SET CMP0048 OLD)
28+
+CMAKE_MINIMUM_REQUIRED(VERSION 3.12...5.0)
29+
30+
SET(PROJECT_NAME "LEMON")
31+
-PROJECT(${PROJECT_NAME})
32+
-
33+
-INCLUDE(FindPythonInterp)
34+
-INCLUDE(FindWget)
35+
36+
-IF(EXISTS ${PROJECT_SOURCE_DIR}/cmake/version.cmake)
37+
- INCLUDE(${PROJECT_SOURCE_DIR}/cmake/version.cmake)
38+
-ELSEIF(DEFINED ENV{LEMON_VERSION})
39+
+IF(DEFINED ENV{LEMON_VERSION})
40+
SET(LEMON_VERSION $ENV{LEMON_VERSION} CACHE STRING "LEMON version string.")
41+
+ELSEIF(EXISTS ${CMAKE_SOURCE_DIR}/cmake/version.cmake)
42+
+ INCLUDE(${CMAKE_SOURCE_DIR}/cmake/version.cmake)
43+
ELSE()
44+
- EXECUTE_PROCESS(
45+
- COMMAND
46+
- hg log -r. --template "{latesttag}"
47+
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
48+
- OUTPUT_VARIABLE HG_REVISION_TAG
49+
- ERROR_QUIET
50+
- OUTPUT_STRIP_TRAILING_WHITESPACE
51+
- )
52+
- EXECUTE_PROCESS(
53+
- COMMAND
54+
- hg log -r. --template "{latesttagdistance}"
55+
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
56+
- OUTPUT_VARIABLE HG_REVISION_DIST
57+
- ERROR_QUIET
58+
- OUTPUT_STRIP_TRAILING_WHITESPACE
59+
- )
60+
- EXECUTE_PROCESS(
61+
- COMMAND
62+
- hg log -r. --template "{node|short}"
63+
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
64+
- OUTPUT_VARIABLE HG_REVISION_ID
65+
- ERROR_QUIET
66+
- OUTPUT_STRIP_TRAILING_WHITESPACE
67+
- )
68+
+ MESSAGE(FATAL_ERROR "LEMON_VERSION is not defined. Please set it in the environment")
69+
+ENDIF()
70+
71+
- IF(HG_REVISION_TAG STREQUAL "")
72+
- SET(HG_REVISION_ID "hg-tip")
73+
- ELSE()
74+
- IF(HG_REVISION_TAG STREQUAL "null")
75+
- SET(HG_REVISION_TAG "trunk")
76+
- ELSEIF(HG_REVISION_TAG MATCHES "^r")
77+
- STRING(SUBSTRING ${HG_REVISION_TAG} 1 -1 HG_REVISION_TAG)
78+
- ENDIF()
79+
- IF(HG_REVISION_DIST STREQUAL "0")
80+
- SET(HG_REVISION ${HG_REVISION_TAG})
81+
- ELSE()
82+
- SET(HG_REVISION
83+
- "${HG_REVISION_TAG}+${HG_REVISION_DIST}-${HG_REVISION_ID}")
84+
- ENDIF()
85+
- ENDIF()
86+
87+
- SET(LEMON_VERSION ${HG_REVISION} CACHE STRING "LEMON version string.")
88+
-ENDIF()
89+
+PROJECT(${PROJECT_NAME} VERSION ${LEMON_VERSION})
90+
+
91+
+find_package(Python3 REQUIRED COMPONENTS Interpreter)
92+
+INCLUDE(FindWget)
93+
94+
SET(PROJECT_VERSION ${LEMON_VERSION})
95+

pkgs/by-name/le/lemon-graph/package.nix

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
stdenv,
44
fetchurl,
55
cmake,
6+
python3,
67
}:
78

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

18+
buildInputs = [ python3 ];
1719
nativeBuildInputs = [ cmake ];
1820

1921
# error: no viable conversion from ...
@@ -22,6 +24,9 @@ stdenv.mkDerivation rec {
2224
patches = [
2325
# error: ISO C++17 does not allow 'register' storage class specifier
2426
./remove-register.patch
27+
28+
# fix cmake compatibility. vendored from https://github.com/The-OpenROAD-Project/lemon-graph/pull/2
29+
./cmake_version.patch
2530
];
2631

2732
meta = with lib; {

0 commit comments

Comments
 (0)