Skip to content
Open
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 .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,5 @@ _deps
.idea
.cmake
logs/
.cache
/build
56 changes: 49 additions & 7 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,13 +1,55 @@
CMAKE_MINIMUM_REQUIRED(VERSION 4.0.0)
PROJECT(lambdah C)
PROJECT(lambdah LANGUAGES C)

SET(CMAKE_C_STANDARD 99)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
SET(CMAKE_C_STANDARD 11)
SET(CMAKE_POSITION_INDEPENDENT_CODE ON)
SET(CMAKE_C_FLAGS "-O0 -g -DDEBUG=1")
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
set(CMAKE_C_FLAGS "-O0 -g3 -DDEBUG=1")
elseif(CMAKE_BUILD_TYPE STREQUAL "MinSizeRel")
set(CMAKE_C_FLAGS "-Os")
elseif(CMAKE_BUILD_TYPE STREQUAL "RelDebInfo")
set(CMAKE_C_FLAGS "-O2 -g3")
else() # Release
set(CMAKE_C_FLAGS "-O2")
endif()

FIND_PACKAGE(JNI REQUIRED)
INCLUDE_DIRECTORIES(${JNI_INCLUDE_DIRS})
find_package(JNI REQUIRED)
add_subdirectory(src)

MESSAGE(STATUS "JNI include dirs: ${JNI_INCLUDE_DIRS}")
target_include_directories(lambdah PRIVATE ${JNI_INCLUDE_DIRS})

ADD_LIBRARY(lambdah SHARED lambda.c lambda.h)
message(STATUS "JNI include dirs: ${JNI_INCLUDE_DIRS}")

target_include_directories(
lambdah
INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:include>
)

install(
EXPORT LibLambdah
FILE LibLambdah.cmake
DESTINATION lib/cmake/liblambdah
)

include(CMakePackageConfigHelpers)

configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in
"${CMAKE_CURRENT_BINARY_DIR}/LibLambdahConfig.cmake"
INSTALL_DESTINATION "lib/cmake/liblambdah"
NO_SET_AND_CHECK_MACRO
NO_CHECK_REQUIRED_COMPONENTS_MACRO
)

write_basic_package_version_file(
"${CMAKE_CURRENT_BINARY_DIR}/LibLambdahConfigVersion.cmake"
VERSION "${Tutorial_VERSION_MAJOR}.${Tutorial_VERSION_MINOR}"
COMPATIBILITY AnyNewerVersion
)

install(
FILES ${CMAKE_CURRENT_BINARY_DIR}/LibLambdahConfig.cmake
DESTINATION lib/cmake/liblambdah
)
3 changes: 3 additions & 0 deletions Config.cmake.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
@PACKAGE_INIT@

include ( "${CMAKE_CURRENT_LIST_DIR}/LibLambdah.cmake" )
8 changes: 8 additions & 0 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@

ADD_LIBRARY(lambdah SHARED lambda.c lambda.h)

set(installable_libs lambdah)
install(TARGETS ${installable_libs}
DESTINATION lib
EXPORT LibLambdah)
install(FILES lambda.h DESTINATION include)
7 changes: 5 additions & 2 deletions lambda.c → src/lambda.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
#include "lambda.h"
#include "jni.h"
#include "jni_md.h"
#include <stdbool.h>

jboolean loaded = 0;
jboolean loaded = false;

static
void
Expand Down Expand Up @@ -65,4 +68,4 @@ JNICALL
JVMTI_EVENT_CLASS_PREPARE, NULL);

return JNI_OK;
}
}
2 changes: 1 addition & 1 deletion lambda.h → src/lambda.h
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,7 @@ jboolean
/*
* === FUNCTION ======================================================================
* Name: lambdah_init
+* Description: Initializes various components for the interface.
* Description: Initializes various components for the interface.
* =====================================================================================
*/
void
Expand Down