From d716248006f28a2448256fa558e0a6374ba32790 Mon Sep 17 00:00:00 2001 From: Hiroshi Hatake Date: Fri, 5 Jul 2024 13:42:23 +0900 Subject: [PATCH 1/3] Provide avoiding to use INCLUDE_DIRECTORIES property if possible This is because our use case is bundling LuaJIT and luajit-cmake. Using INCLUDE_DIRECTORIES property on relatively older cmakes causes configuration failues: ``` CMake Error at lib/luajit-cmake/CMakeLists.txt:20 (get_target_property): INTERFACE_LIBRARY targets may only have whitelisted properties. The property "INCLUDE_DIRECTORIES" is not allowed. ``` This could be overkill to set up include directories for such case. Signed-off-by: Hiroshi Hatake --- CMakeLists.txt | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 86747f2..7baf878 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,6 +2,7 @@ cmake_minimum_required(VERSION 3.5) option(LUA_DIR "Path of Lua 5.4 source dir" OFF) option(LUAJIT_DIR "Path of LuaJIT 2.1 source dir" OFF) +option(LUAJIT_SETUP_INCLUDE_DIR "Setup include dir if parent is present" ON) if(CMAKE_COMPILER_IS_GNUCC) set(LUA_TARGET_SHARED ON) @@ -17,8 +18,10 @@ if(LUAJIT_DIR) if (hasParent) set(LUA_TARGET $ PARENT_SCOPE) set(LUA_LIBRARIES luajit::lib PARENT_SCOPE) - get_target_property(LUA_INCLUDE_DIR luajit::header INCLUDE_DIRECTORIES) - set(LUA_INCLUDE_DIR ${LUA_INCLUDE_DIR} PARENT_SCOPE) + if (LUAJIT_SETUP_INCLUDE_DIR) + get_target_property(LUA_INCLUDE_DIR luajit::header INCLUDE_DIRECTORIES) + set(LUA_INCLUDE_DIR ${LUA_INCLUDE_DIR} PARENT_SCOPE) + endif() endif() elseif(LUA_DIR) project(lua) @@ -26,8 +29,10 @@ elseif(LUA_DIR) if (hasParent) set(LUA_TARGET $ PARENT_SCOPE) set(LUA_LIBRARIES lua::lib PARENT_SCOPE) - get_target_property(LUA_INCLUDE_DIR lua::header INCLUDE_DIRECTORIES) - set(LUA_INCLUDE_DIR ${LUA_INCLUDE_DIR} PARENT_SCOPE) + if (LUAJIT_SETUP_INCLUDE_DIR) + get_target_property(LUA_INCLUDE_DIR lua::header INCLUDE_DIRECTORIES) + set(LUA_INCLUDE_DIR ${LUA_INCLUDE_DIR} PARENT_SCOPE) + endif() endif() if (WITH_LIBFFI) include(ffi.cmake) From fcfabc0a23d199b590c233901c2c969bee83d883 Mon Sep 17 00:00:00 2001 From: Hiroshi Hatake Date: Fri, 5 Jul 2024 15:08:49 +0900 Subject: [PATCH 2/3] Permit absence of git command This is because git command is sometimes absence for container environments. Container environment should be lighter and lighter as much as possible. Signed-off-by: Hiroshi Hatake --- LuaJIT.cmake | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/LuaJIT.cmake b/LuaJIT.cmake index 3b905ad..bc58efe 100644 --- a/LuaJIT.cmake +++ b/LuaJIT.cmake @@ -408,11 +408,28 @@ if (CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows") set(GIT_FORMAT %%ct) endif() -add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/luajit_relver.txt - COMMAND git show -s --format=${GIT_FORMAT} > ${CMAKE_CURRENT_BINARY_DIR}/luajit_relver.txt - WORKING_DIRECTORY ${LUAJIT_DIR} +execute_process( + COMMAND git --version + RESULT_VARIABLE GIT_EXISTENCE + OUTPUT_VARIABLE GIT_VERSION + OUTPUT_STRIP_TRAILING_WHITESPACE ) +if (GIT_EXISTENCE EQUAL 0) + message(STATUS "Using Git: ${GIT_VERSION}") + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/luajit_relver.txt + COMMAND git show -s --format=${GIT_FORMAT} > ${CMAKE_CURRENT_BINARY_DIR}/luajit_relver.txt + WORKING_DIRECTORY ${LUAJIT_DIR} + ) +else() + string(TIMESTAMP current_epoch "%s") + message(STATUS "Using current epoch: ${current_epoch}") + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/luajit_relver.txt + COMMAND echo "${current_epoch}" > ${CMAKE_CURRENT_BINARY_DIR}/luajit_relver.txt + WORKING_DIRECTORY ${LUAJIT_DIR} + ) +endif() + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/luajit.h COMMAND ${HOST_WINE} ${MINILUA_PATH} ${LUAJIT_DIR}/src/host/genversion.lua ARGS ${LUAJIT_DIR}/src/luajit_rolling.h From dd59a440bdfe1a1df7fb3569078ac361e2ea4e46 Mon Sep 17 00:00:00 2001 From: Hiroshi Hatake Date: Wed, 10 Jul 2024 09:23:55 +0900 Subject: [PATCH 3/3] Add an exsitence check for git repository Signed-off-by: Hiroshi Hatake --- LuaJIT.cmake | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/LuaJIT.cmake b/LuaJIT.cmake index bc58efe..e36c56a 100644 --- a/LuaJIT.cmake +++ b/LuaJIT.cmake @@ -415,10 +415,17 @@ execute_process( OUTPUT_STRIP_TRAILING_WHITESPACE ) -if (GIT_EXISTENCE EQUAL 0) +execute_process( + COMMAND git rev-parse --is-inside-work-tree + RESULT_VARIABLE GIT_IN_REPOSITORY + OUTPUT_VARIABLE GIT_IS_IN_REPOSITORY + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +if ((GIT_EXISTENCE EQUAL 0) AND (GIT_IN_REPOSITORY EQUAL 0)) message(STATUS "Using Git: ${GIT_VERSION}") add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/luajit_relver.txt - COMMAND git show -s --format=${GIT_FORMAT} > ${CMAKE_CURRENT_BINARY_DIR}/luajit_relver.txt + COMMAND git -c log.showSignature=false show -s --format=${GIT_FORMAT} > ${CMAKE_CURRENT_BINARY_DIR}/luajit_relver.txt WORKING_DIRECTORY ${LUAJIT_DIR} ) else()