summaryrefslogtreecommitdiffstats
path: root/fluent-bit/lib/luajit-cmake/Bundle.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'fluent-bit/lib/luajit-cmake/Bundle.cmake')
-rw-r--r--fluent-bit/lib/luajit-cmake/Bundle.cmake195
1 files changed, 195 insertions, 0 deletions
diff --git a/fluent-bit/lib/luajit-cmake/Bundle.cmake b/fluent-bit/lib/luajit-cmake/Bundle.cmake
new file mode 100644
index 00000000..7823785e
--- /dev/null
+++ b/fluent-bit/lib/luajit-cmake/Bundle.cmake
@@ -0,0 +1,195 @@
+# Modfied from luajit.cmake Added LUA_ADD_EXECUTABLE Ryan Phillips <ryan at
+# trolocsis.com> This CMakeLists.txt has been first taken from LuaDist Copyright
+# (C) 2007-2011 LuaDist. Created by Peter Drahoš Redistribution and use of this
+# file is allowed according to the terms of the MIT license. Debugged and (now
+# seriously) modIFied by Ronan Collobert, for Torch7
+
+if(NOT DEFINED BUNDLE_CMD)
+ set(BUNDLE_CMD luajit CACHE STRING "Use lua to do lua file bundle")
+endif()
+if(NOT DEFINED BUNDLE_CMD_ARGS)
+ set(BUNDLE_CMD_ARGS "" CACHE STRING "Bundle args for cross compile")
+endif()
+if(NOT DEFINED BUNDLE_USE_LUA2C)
+ set(BUNDLE_USE_LUA2C OFF CACHE BOOL "Use bin2c.lua do lua file bundle")
+endif()
+
+include (TestBigEndian)
+TEST_BIG_ENDIAN(IS_BIG_ENDIAN)
+if(IS_BIG_ENDIAN)
+ message(STATUS "BIG_ENDIAN")
+else()
+ message(STATUS "LITTLE_ENDIAN")
+endif()
+
+if(BUNDLE_USE_LUA2C)
+ file(COPY ${CMAKE_CURRENT_LIST_DIR}/lua2c.lua DESTINATION ${LUA_TARGET_PATH})
+endif()
+
+macro(LUA_add_custom_commands luajit_target)
+ set(target_srcs "")
+ foreach(file ${ARGN})
+ if(${file} MATCHES ".*\\.lua$")
+ if(NOT IS_ABSOLUTE ${file})
+ set(file "${CMAKE_CURRENT_SOURCE_DIR}/${file}")
+ endif()
+ set(source_file ${file})
+ string(LENGTH ${CMAKE_SOURCE_DIR} _luajit_source_dir_length)
+ string(LENGTH ${file} _luajit_file_length)
+ math(EXPR _begin "${_luajit_source_dir_length} + 1")
+ math(EXPR _stripped_file_length
+ "${_luajit_file_length} - ${_luajit_source_dir_length} - 1")
+ string(SUBSTRING ${file}
+ ${_begin}
+ ${_stripped_file_length}
+ stripped_file)
+
+ set(
+ generated_file
+ "${CMAKE_BINARY_DIR}/luacode_tmp/${stripped_file}_${luajit_target}_generated.c"
+ )
+
+ add_custom_command(
+ OUTPUT ${generated_file}
+ MAIN_DEPENDENCY ${source_file}
+ DEPENDS ${LUA_TARGET}
+ COMMAND ${BUNDLE_CMD} ARGS
+ ${BUNDLE_CMD_ARGS} lua2c.lua ${source_file} ${generated_file}
+ COMMENT "${BUNDLE_CMD} ${BUNDLE_CMD_ARGS} lua2c.lua ${source_file} ${generated_file}"
+ WORKING_DIRECTORY ${LUA_TARGET_PATH})
+
+ get_filename_component(basedir ${generated_file} PATH)
+ file(MAKE_DIRECTORY ${basedir})
+
+ set(target_srcs ${target_srcs} ${generated_file})
+ set_source_files_properties(${generated_file}
+ properties
+ generated
+ true # to say that "it is OK that the obj-
+ # files do not exist before build time"
+ )
+ else()
+ set(target_srcs ${target_srcs} ${file})
+ endif()
+ endforeach()
+endmacro()
+
+if(NOT LJ_TARGET_ARCH)
+include(${CMAKE_CURRENT_LIST_DIR}/Modules/DetectArchitecture.cmake)
+detect_architecture(LJ_DETECTED_ARCH)
+if("${LJ_DETECTED_ARCH}" STREQUAL "x86")
+ set(LJ_TARGET_ARCH "x86")
+elseif("${LJ_DETECTED_ARCH}" STREQUAL "x86_64")
+ set(LJ_TARGET_ARCH "x64")
+elseif("${LJ_DETECTED_ARCH}" STREQUAL "AArch64")
+ set(LJ_TARGET_ARCH "arm64")
+elseif("${LJ_DETECTED_ARCH}" STREQUAL "ARM")
+ set(LJ_TARGET_ARCH "arm")
+elseif("${LJ_DETECTED_ARCH}" STREQUAL "Mips64")
+ if(IS_BIG_ENDIAN)
+ set(LJ_TARGET_ARCH "mips64")
+ else()
+ set(LJ_TARGET_ARCH "mips64el")
+ endif()
+elseif("${LJ_DETECTED_ARCH}" STREQUAL "Mips")
+ if(IS_BIG_ENDIAN)
+ set(LJ_TARGET_ARCH "mips")
+ else()
+ set(LJ_TARGET_ARCH "mipsel")
+ endif()
+elseif("${LJ_DETECTED_ARCH}" STREQUAL "PowerPC")
+ if(LJ_64)
+ set(LJ_TARGET_ARCH "ppc64")
+ else()
+ set(LJ_TARGET_ARCH "ppc")
+ endif()
+else()
+ message(FATAL_ERROR "Unsupported target architecture: '${LJ_DETECTED_ARCH}'")
+endif()
+endif()
+
+macro(LUAJIT_add_custom_commands luajit_target)
+ set(target_srcs "")
+
+ if(WIN32)
+ set(LJDUMP_OPT -b -g -a ${LJ_TARGET_ARCH} -o windows)
+ elseif(APPLE)
+ set(LJDUMP_OPT -b -g -a ${LJ_TARGET_ARCH} -o osx)
+ elseif(ANDROID OR ${CMAKE_SYSTEM_NAME} STREQUAL Linux)
+ set(LJDUMP_OPT -b -g -a ${LJ_TARGET_ARCH} -o linux)
+ else()
+ set(LJDUMP_OPT -b -g -a ${LJ_TARGET_ARCH})
+ endif()
+
+ foreach(file ${ARGN})
+ if(${file} MATCHES ".*\\.lua$")
+ if(NOT IS_ABSOLUTE ${file})
+ set(file "${CMAKE_CURRENT_SOURCE_DIR}/${file}")
+ endif()
+ set(source_file ${file})
+ string(LENGTH ${CMAKE_SOURCE_DIR} _luajit_source_dir_length)
+ string(LENGTH ${file} _luajit_file_length)
+ math(EXPR _begin "${_luajit_source_dir_length} + 1")
+ math(EXPR _stripped_file_length
+ "${_luajit_file_length} - ${_luajit_source_dir_length} - 1")
+ string(SUBSTRING ${file}
+ ${_begin}
+ ${_stripped_file_length}
+ stripped_file)
+
+ set(
+ generated_file
+ "${CMAKE_CURRENT_BINARY_DIR}/jitted_tmp/${stripped_file}_${luajit_target}_generated${CMAKE_C_OUTPUT_EXTENSION}"
+ )
+ string(REPLACE ";" " " LJDUMP_OPT_STR "${LJDUMP_OPT}")
+
+ add_custom_command(
+ OUTPUT ${generated_file}
+ MAIN_DEPENDENCY ${source_file}
+ DEPENDS ${LUA_TARGET}
+ COMMAND ${BUNDLE_CMD} ARGS
+ ${BUNDLE_CMD_ARGS}
+ ${LJDUMP_OPT} ${source_file} ${generated_file}
+ COMMENT "${BUNDLE_CMD} ${BUNDLE_CMD_ARGS} ${LJDUMP_OPT_STR} ${source_file} ${generated_file}"
+ WORKING_DIRECTORY ${LUA_TARGET_PATH})
+ get_filename_component(basedir ${generated_file} PATH)
+ file(MAKE_DIRECTORY ${basedir})
+
+ set(target_srcs ${target_srcs} ${generated_file})
+ set_source_files_properties(${generated_file}
+ properties
+ external_object
+ true # this is an object file
+ generated
+ true # to say that "it is OK that the obj-
+ # files do not exist before build time"
+ )
+ else()
+ set(target_srcs ${target_srcs} ${file})
+ endif()
+ endforeach()
+endmacro()
+
+if(BUNDLE_USE_LUA2C)
+
+ macro(LUA_ADD_CUSTOM luajit_target)
+ lua_add_custom_commands(${luajit_target} ${ARGN})
+ endmacro()
+
+ macro(LUA_ADD_EXECUTABLE luajit_target)
+ lua_add_custom_commands(${luajit_target} ${ARGN})
+ add_executable(${luajit_target} ${target_srcs})
+ endmacro()
+
+else()
+
+ macro(LUA_ADD_CUSTOM luajit_target)
+ luajit_add_custom_commands(${luajit_target} ${ARGN})
+ endmacro()
+
+ macro(LUA_ADD_EXECUTABLE luajit_target)
+ luajit_add_custom_commands(${luajit_target} ${ARGN})
+ add_executable(${luajit_target} ${target_srcs})
+ endmacro()
+
+endif()