Skip to content

Commit 10cd56e

Browse files
committed
[infra] Use lighting as submodule
1 parent 5e657e3 commit 10cd56e

7 files changed

Lines changed: 48 additions & 48 deletions

File tree

.github/workflows/build.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ jobs:
4949
steps:
5050
- name: Checkout repo and submodules
5151
uses: actions/checkout@v4
52+
with:
53+
submodules: recursive
5254

5355
- name: Install Ninja
5456
if: ${{ matrix.generator == 'Ninja' }}

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "third_party/lightning"]
2+
path = third_party/lightning
3+
url = git://git.git.savannah.gnu.org/lightning.git

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ include(defaults)
2020
include(dependencies)
2121
include(utils)
2222

23+
add_subdirectory(third_party)
2324
add_subdirectory(src)
2425
add_subdirectory(tools)
2526

cmake/dependencies.cmake

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -54,13 +54,6 @@ CPMAddPackage(
5454
OPTIONS "ASMJIT_STATIC ON"
5555
OPTIONS "ASMJIT_NO_DEPRECATED ON")
5656

57-
CPMAddPackage(
58-
NAME lightning
59-
URL "https://ftp.gnu.org/gnu/lightning/lightning-2.2.3.tar.gz"
60-
EXCLUDE_FROM_ALL True
61-
DOWNLOAD_ONLY True
62-
)
63-
6457
# mir
6558
CPMAddPackage(
6659
NAME mir

src/jit/lightning/CMakeLists.txt

Lines changed: 1 addition & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,8 @@
1-
# Adding this library Sorry for such creepy code
2-
3-
include(ExternalProject)
4-
5-
find_program(MAKE_EXECUTABLE NAMES make REQUIRED)
6-
7-
set(LIGHTNING_INSTALL_DIR ${lightning_BINARY_DIR}/install)
8-
9-
set(LIGHTNING_LIBRARY
10-
"${LIGHTNING_INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}lightning${CMAKE_STATIC_LIBRARY_SUFFIX}"
11-
)
12-
13-
ExternalProject_Add(
14-
lightning_lib
15-
SOURCE_DIR ${lightning_SOURCE_DIR}
16-
PREFIX ${LIGHTNING_INSTALL_DIR}
17-
UPDATE_DISCONNECTED TRUE # Do not check git updates
18-
# Configure: run autotools
19-
CONFIGURE_COMMAND
20-
./configure --prefix=${LIGHTNING_INSTALL_DIR} CFLAGS=-O2 --disable-shared
21-
CC=${CMAKE_C_COMPILER} --disable-disassembler
22-
# Build & install
23-
BUILD_COMMAND ${MAKE_EXECUTABLE} -j
24-
INSTALL_COMMAND ${MAKE_EXECUTABLE} install
25-
LOG_CONFIGURE False
26-
LOG_BUILD False
27-
LOG_MERGED_STDOUTERR False
28-
LOG_OUTPUT_ON_FAILURE True
29-
BUILD_IN_SOURCE 1
30-
BUILD_BYPRODUCTS ${LIGHTNING_LIBRARY})
31-
32-
set(LIGHTNING_INCLUDE_DIR "${LIGHTNING_INSTALL_DIR}/include")
33-
make_directory(${LIGHTNING_INCLUDE_DIR})
34-
35-
add_library(lightning_iface INTERFACE)
36-
target_include_directories(lightning_iface INTERFACE ${LIGHTNING_INCLUDE_DIR})
37-
target_link_libraries(lightning_iface INTERFACE ${LIGHTNING_LIBRARY})
38-
add_dependencies(lightning_iface lightning_lib)
39-
40-
# ---------------------------------------------
411
add_library(prot_jit_lightning STATIC lightning.cc)
422
target_link_libraries(
433
prot_jit_lightning
444
PUBLIC PROT::isa PROT::exec_engine
45-
PRIVATE PROT::defaults fmt::fmt PROT::JIT::base lightning_iface)
5+
PRIVATE PROT::defaults fmt::fmt PROT::JIT::base PROT::gnu_lightning)
466
target_include_directories(prot_jit_lightning PUBLIC include)
477

488
add_library(PROT::JIT::lightning ALIAS prot_jit_lightning)

third_party/CMakeLists.txt

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Lightning build & configure
2+
3+
include(ExternalProject)
4+
5+
find_program(MAKE_EXECUTABLE NAMES make REQUIRED)
6+
7+
set(LIGHTNING_INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/lightning/install)
8+
9+
set(LIGHTNING_LIBRARY
10+
"${LIGHTNING_INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}lightning${CMAKE_STATIC_LIBRARY_SUFFIX}"
11+
)
12+
13+
ExternalProject_Add(
14+
lightning_lib
15+
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lightning
16+
PREFIX ${LIGHTNING_INSTALL_DIR}
17+
UPDATE_DISCONNECTED TRUE # Do not check git updates
18+
# Configure: run autotools
19+
CONFIGURE_COMMAND
20+
./bootstrap && ./configure --prefix=${LIGHTNING_INSTALL_DIR} CFLAGS=-O2
21+
--disable-shared CC=${CMAKE_C_COMPILER} --disable-disassembler
22+
# Build & install
23+
BUILD_COMMAND ${MAKE_EXECUTABLE} -j
24+
INSTALL_COMMAND ${MAKE_EXECUTABLE} install
25+
LOG_CONFIGURE False
26+
LOG_BUILD False
27+
LOG_MERGED_STDOUTERR False
28+
LOG_OUTPUT_ON_FAILURE True
29+
BUILD_IN_SOURCE 1
30+
BUILD_BYPRODUCTS ${LIGHTNING_LIBRARY})
31+
32+
set(LIGHTNING_INCLUDE_DIR "${LIGHTNING_INSTALL_DIR}/include")
33+
make_directory(${LIGHTNING_INCLUDE_DIR})
34+
35+
add_library(lightning_iface INTERFACE)
36+
target_include_directories(lightning_iface INTERFACE ${LIGHTNING_INCLUDE_DIR})
37+
target_link_libraries(lightning_iface INTERFACE ${LIGHTNING_LIBRARY})
38+
add_dependencies(lightning_iface lightning_lib)
39+
set_target_properties(lightning_iface PROPERTIES EXCLUDE_FROM_ALL True)
40+
add_library(PROT::gnu_lightning ALIAS lightning_iface)

third_party/lightning

Submodule lightning added at a6bb2b5

0 commit comments

Comments
 (0)