From 6b3abc2dcec07fa796460350c14b0b5977fd091e Mon Sep 17 00:00:00 2001 From: Matias Date: Tue, 23 Dec 2025 15:33:41 +0200 Subject: [PATCH 1/2] Added install task to build script, moved sources to 'src' and added support for different build types --- .gitignore | 2 ++ CMakeLists.txt | 56 +++++++++++++++++++++++++++++++++++----- Config.cmake.in | 3 +++ src/CMakeLists.txt | 8 ++++++ lambda.c => src/lambda.c | 7 +++-- lambda.h => src/lambda.h | 2 +- 6 files changed, 68 insertions(+), 10 deletions(-) create mode 100644 Config.cmake.in create mode 100644 src/CMakeLists.txt rename lambda.c => src/lambda.c (95%) rename lambda.h => src/lambda.h (99%) diff --git a/.gitignore b/.gitignore index 880eeb6..fc78ed6 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,5 @@ _deps .idea .cmake logs/ +.cache +/build diff --git a/CMakeLists.txt b/CMakeLists.txt index 13d8327..7992ece 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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 + $ + $ +) + +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 +) diff --git a/Config.cmake.in b/Config.cmake.in new file mode 100644 index 0000000..d617fe2 --- /dev/null +++ b/Config.cmake.in @@ -0,0 +1,3 @@ +@PACKAGE_INIT@ + +include ( "${CMAKE_CURRENT_LIST_DIR}/LibLambdah.cmake" ) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..59b8733 --- /dev/null +++ b/src/CMakeLists.txt @@ -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) diff --git a/lambda.c b/src/lambda.c similarity index 95% rename from lambda.c rename to src/lambda.c index d1b59e4..cc162d1 100644 --- a/lambda.c +++ b/src/lambda.c @@ -1,6 +1,9 @@ #include "lambda.h" +#include "jni.h" +#include "jni_md.h" +#include -jboolean loaded = 0; +jboolean loaded = false; static void @@ -65,4 +68,4 @@ JNICALL JVMTI_EVENT_CLASS_PREPARE, NULL); return JNI_OK; -} \ No newline at end of file +} diff --git a/lambda.h b/src/lambda.h similarity index 99% rename from lambda.h rename to src/lambda.h index ba950c8..b9bb8c9 100644 --- a/lambda.h +++ b/src/lambda.h @@ -277,7 +277,7 @@ jboolean /* * === FUNCTION ====================================================================== * Name: lambdah_init - +* Description: Initializes various components for the interface. + * Description: Initializes various components for the interface. * ===================================================================================== */ void From 1052ec144b58e568fdec374a06a462fdd1cd51cf Mon Sep 17 00:00:00 2001 From: Matias Date: Fri, 26 Dec 2025 14:13:00 +0200 Subject: [PATCH 2/2] replaced lambdah with lambda --- CMakeLists.txt | 22 +++++++++++----------- Config.cmake.in | 2 +- src/CMakeLists.txt | 6 +++--- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7992ece..c7c88aa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ CMAKE_MINIMUM_REQUIRED(VERSION 4.0.0) -PROJECT(lambdah LANGUAGES C) +PROJECT(lambda LANGUAGES C) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) SET(CMAKE_C_STANDARD 11) @@ -17,39 +17,39 @@ endif() find_package(JNI REQUIRED) add_subdirectory(src) -target_include_directories(lambdah PRIVATE ${JNI_INCLUDE_DIRS}) +target_include_directories(lambda PRIVATE ${JNI_INCLUDE_DIRS}) message(STATUS "JNI include dirs: ${JNI_INCLUDE_DIRS}") target_include_directories( - lambdah + lambda INTERFACE $ $ ) install( - EXPORT LibLambdah - FILE LibLambdah.cmake - DESTINATION lib/cmake/liblambdah + EXPORT LibLambda + FILE LibLambda.cmake + DESTINATION lib/cmake/liblambda ) include(CMakePackageConfigHelpers) configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in - "${CMAKE_CURRENT_BINARY_DIR}/LibLambdahConfig.cmake" - INSTALL_DESTINATION "lib/cmake/liblambdah" + "${CMAKE_CURRENT_BINARY_DIR}/LibLambdaConfig.cmake" + INSTALL_DESTINATION "lib/cmake/liblambda" NO_SET_AND_CHECK_MACRO NO_CHECK_REQUIRED_COMPONENTS_MACRO ) write_basic_package_version_file( - "${CMAKE_CURRENT_BINARY_DIR}/LibLambdahConfigVersion.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/LibLambdaConfigVersion.cmake" VERSION "${Tutorial_VERSION_MAJOR}.${Tutorial_VERSION_MINOR}" COMPATIBILITY AnyNewerVersion ) install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/LibLambdahConfig.cmake - DESTINATION lib/cmake/liblambdah + FILES ${CMAKE_CURRENT_BINARY_DIR}/LibLambdaConfig.cmake + DESTINATION lib/cmake/liblambda ) diff --git a/Config.cmake.in b/Config.cmake.in index d617fe2..e2f3e7f 100644 --- a/Config.cmake.in +++ b/Config.cmake.in @@ -1,3 +1,3 @@ @PACKAGE_INIT@ -include ( "${CMAKE_CURRENT_LIST_DIR}/LibLambdah.cmake" ) +include ( "${CMAKE_CURRENT_LIST_DIR}/LibLambda.cmake" ) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 59b8733..97ba9d5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,8 +1,8 @@ -ADD_LIBRARY(lambdah SHARED lambda.c lambda.h) +ADD_LIBRARY(lambda SHARED lambda.c lambda.h) -set(installable_libs lambdah) +set(installable_libs lambda) install(TARGETS ${installable_libs} DESTINATION lib - EXPORT LibLambdah) + EXPORT LibLambda) install(FILES lambda.h DESTINATION include)