Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@ jobs:
steps:
- name: Checkout repo and submodules
uses: actions/checkout@v4
with:
submodules: recursive

- name: Install Ninja
if: ${{ matrix.generator == 'Ninja' }}
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
build/
.cache/
__pycache__/
*.png

# Prerequisites
*.d
Expand Down
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "third_party/lightning"]
path = third_party/lightning
url = git://git.git.savannah.gnu.org/lightning.git
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ include(defaults)
include(dependencies)
include(utils)

add_subdirectory(third_party)
add_subdirectory(src)
add_subdirectory(tools)

Expand Down
7 changes: 0 additions & 7 deletions cmake/dependencies.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -54,13 +54,6 @@ CPMAddPackage(
OPTIONS "ASMJIT_STATIC ON"
OPTIONS "ASMJIT_NO_DEPRECATED ON")

CPMAddPackage(
NAME lightning
URL "https://ftp.gnu.org/gnu/lightning/lightning-2.2.3.tar.gz"
EXCLUDE_FROM_ALL True
DOWNLOAD_ONLY True
)

# mir
CPMAddPackage(
NAME mir
Expand Down
42 changes: 1 addition & 41 deletions src/jit/lightning/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,48 +1,8 @@
# Adding this library Sorry for such creepy code

include(ExternalProject)

find_program(MAKE_EXECUTABLE NAMES make REQUIRED)

set(LIGHTNING_INSTALL_DIR ${lightning_BINARY_DIR}/install)

set(LIGHTNING_LIBRARY
"${LIGHTNING_INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}lightning${CMAKE_STATIC_LIBRARY_SUFFIX}"
)

ExternalProject_Add(
lightning_lib
SOURCE_DIR ${lightning_SOURCE_DIR}
PREFIX ${LIGHTNING_INSTALL_DIR}
UPDATE_DISCONNECTED TRUE # Do not check git updates
# Configure: run autotools
CONFIGURE_COMMAND
./configure --prefix=${LIGHTNING_INSTALL_DIR} CFLAGS=-O2 --disable-shared
CC=${CMAKE_C_COMPILER} --disable-disassembler
# Build & install
BUILD_COMMAND ${MAKE_EXECUTABLE} -j
INSTALL_COMMAND ${MAKE_EXECUTABLE} install
LOG_CONFIGURE False
LOG_BUILD False
LOG_MERGED_STDOUTERR False
LOG_OUTPUT_ON_FAILURE True
BUILD_IN_SOURCE 1
BUILD_BYPRODUCTS ${LIGHTNING_LIBRARY})

set(LIGHTNING_INCLUDE_DIR "${LIGHTNING_INSTALL_DIR}/include")
make_directory(${LIGHTNING_INCLUDE_DIR})

add_library(lightning_iface INTERFACE)
target_include_directories(lightning_iface INTERFACE ${LIGHTNING_INCLUDE_DIR})
target_link_libraries(lightning_iface INTERFACE ${LIGHTNING_LIBRARY})
add_dependencies(lightning_iface lightning_lib)

# ---------------------------------------------
add_library(prot_jit_lightning STATIC lightning.cc)
target_link_libraries(
prot_jit_lightning
PUBLIC PROT::isa PROT::exec_engine
PRIVATE PROT::defaults fmt::fmt PROT::JIT::base lightning_iface)
PRIVATE PROT::defaults fmt::fmt PROT::JIT::base PROT::gnu_lightning)
target_include_directories(prot_jit_lightning PUBLIC include)

add_library(PROT::JIT::lightning ALIAS prot_jit_lightning)
40 changes: 40 additions & 0 deletions third_party/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Lightning build & configure

include(ExternalProject)

find_program(MAKE_EXECUTABLE NAMES make REQUIRED)

set(LIGHTNING_INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/lightning/install)

set(LIGHTNING_LIBRARY
"${LIGHTNING_INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}lightning${CMAKE_STATIC_LIBRARY_SUFFIX}"
)

ExternalProject_Add(
lightning_lib
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lightning
PREFIX ${LIGHTNING_INSTALL_DIR}
UPDATE_DISCONNECTED TRUE # Do not check git updates
# Configure: run autotools
CONFIGURE_COMMAND
./bootstrap && ./configure --prefix=${LIGHTNING_INSTALL_DIR} CFLAGS=-O2
--disable-shared CC=${CMAKE_C_COMPILER} --disable-disassembler
# Build & install
BUILD_COMMAND ${MAKE_EXECUTABLE} -j
INSTALL_COMMAND ${MAKE_EXECUTABLE} install
LOG_CONFIGURE False
LOG_BUILD False
LOG_MERGED_STDOUTERR False
LOG_OUTPUT_ON_FAILURE True
BUILD_IN_SOURCE 1
BUILD_BYPRODUCTS ${LIGHTNING_LIBRARY})

set(LIGHTNING_INCLUDE_DIR "${LIGHTNING_INSTALL_DIR}/include")
make_directory(${LIGHTNING_INCLUDE_DIR})

add_library(lightning_iface INTERFACE)
target_include_directories(lightning_iface INTERFACE ${LIGHTNING_INCLUDE_DIR})
target_link_libraries(lightning_iface INTERFACE ${LIGHTNING_LIBRARY})
add_dependencies(lightning_iface lightning_lib)
set_target_properties(lightning_iface PROPERTIES EXCLUDE_FROM_ALL True)
add_library(PROT::gnu_lightning ALIAS lightning_iface)
1 change: 1 addition & 0 deletions third_party/lightning
Submodule lightning added at a6bb2b