nf7/thirdparty/luajit.cmake
2023-07-30 00:07:17 +09:00

57 lines
1.3 KiB
CMake

set(src "${luajit_SOURCE_DIR}/src")
if (UNIX)
find_program(MAKE make REQUIRED)
set(lib "${src}/libluajit.a")
add_custom_target(luajit-build
COMMAND
${MAKE} -j BUILDMODE=static CFLAGS=-fPIC CXX=${CMAKE_CXX_COMPILER} CC=${CMAKE_C_COMPILER}
WORKING_DIRECTORY "${luajit_SOURCE_DIR}"
VERBATIM
)
# To enable assertions, add the following options:
# XCFLAGS="-DLUA_USE_APICHECK -DLUA_USE_ASSERT -Og -g"
elseif (MINGW)
find_program(MAKE mingw32-make REQUIRED)
set(lib "${src}/libluajit.a")
add_custom_target(luajit-build
COMMAND ${MAKE} -j BUILDMODE=static CFLAGS=-fPIC
WORKING_DIRECTORY "${luajit_SOURCE_DIR}/src"
VERBATIM
)
elseif (MSVC)
set(lib "${src}/lua51.lib")
add_custom_command(
OUTPUT "${lib}"
COMMAND msvcbuild.bat static
DEPENDS "${luajit_BINARY_DIR}/skip_build"
WORKING_DIRECTORY "${src}"
VERBATIM
)
add_custom_target(luajit-build SOURCES "${lib}")
else()
message(ERROR "unknown environment")
endif()
add_library(luajit-imported STATIC IMPORTED)
set_target_properties(luajit-imported PROPERTIES
IMPORTED_LOCATION "${lib}"
)
add_dependencies(luajit-imported luajit-build)
add_library(luajit INTERFACE)
target_link_libraries(luajit
INTERFACE luajit-imported $<$<PLATFORM_ID:Linux>:m>
)
target_include_directories(luajit SYSTEM BEFORE
INTERFACE "${src}"
)