lua/CMakeLists.txt

87 lines
2.6 KiB
CMake
Raw Permalink Normal View History

2025-02-12 16:34:23 +08:00
cmake_minimum_required(VERSION 3.16)
2025-02-22 22:54:32 +08:00
project(mlua VERSION 1.0.0 LANGUAGES CXX)
2025-02-12 16:34:23 +08:00
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
if (MSVC)
add_compile_options(/source-charset:utf-8)
endif()
2025-02-22 22:54:32 +08:00
include(config/MSystem.cmake)
set(COMPILER_ID ${CMAKE_CXX_COMPILER_ID})
2025-02-12 16:34:23 +08:00
message(STATUS "System: ${CMAKE_SYSTEM_NAME}")
message(STATUS "Compiler CXX ID: ${CMAKE_CXX_COMPILER_ID}")
2025-02-22 22:54:32 +08:00
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND CMAKE_SYSTEM_NAME MATCHES "Windows")
message(STATUS "add mingw param.")
add_compile_options(-finput-charset=utf-8)
add_compile_options(-fexec-charset=gbk)
add_compile_options(-Wa,-mbig-obj)
set(COMPILER_ID "mingw")
endif()
2025-02-12 16:34:23 +08:00
# Set output directories
2025-02-22 22:54:32 +08:00
string(TOLOWER ${COMPILER_ID} COMPILER_ID)
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib/)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin/)
2025-02-12 16:34:23 +08:00
add_subdirectory(lua)
2025-02-12 23:16:13 +08:00
add_subdirectory(fs)
2025-02-22 22:54:32 +08:00
add_subdirectory(gendef)
install(TARGETS lua DESTINATION bin)
install(TARGETS luac DESTINATION bin)
install(TARGETS lua_fs RUNTIME DESTINATION bin)
if (DEFINED USE_BOOST)
install(FILES ${MINGW32_DLLS} DESTINATION bin)
endif()
2025-02-22 23:05:53 +08:00
if(WIN32)
execute_process(
COMMAND cmd /c ${CMAKE_SOURCE_DIR}/def_gen.bat
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
else()
execute_process(
COMMAND bash ${CMAKE_SOURCE_DIR}/def_gen.sh
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
endif()
install(FILES ${CMAKE_SOURCE_DIR}/export/lua_fs.lua DESTINATION bin)
2025-02-22 22:54:32 +08:00
# ********************************************************** pack infomation
2025-02-22 23:05:53 +08:00
2025-02-22 22:54:32 +08:00
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(ARCH_BIT "64Bit")
elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
set(ARCH_BIT "32Bit")
else()
message(FATAL_ERROR "Unknown target architecture")
endif()
set(CPACK_PACKAGE_NAME "mlua")
set(CPACK_PACKAGE_VERSION "${PROJECT_VERSION}")
set(CPACK_PACKAGE_CONTACT "taynpg <taynpg@163.com>")
set(CPACK_PACKAGE_DESCRIPTION "A personal lua.")
set(CPACK_PACKAGE_VENDOR "taynpg")
if(WIN32)
set(CPACK_NSIS_MODIFY_PATH ON)
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(CPACK_GENERATOR "NSIS64;ZIP")
elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
set(CPACK_GENERATOR "NSIS;ZIP")
else()
message(FATAL_ERROR "Unknown target architecture")
endif()
set(CPACK_NSIS_INSTALL_ROOT "$PROFILE")
set(CPACK_PACKAGE_INSTALL_DIRECTORY "mlua")
elseif(UNIX AND NOT APPLE)
set(CPACK_GENERATOR "DEB;TGZ")
set(CPACK_DEBIAN_PACKAGE_SECTION "utils")
set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "taynpg <taynpg@163.com>")
elseif(APPLE)
set(CPACK_GENERATOR "DragNDrop")
endif()
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-v${PROJECT_VERSION}-${COMPILER_ID}.${SYSTEM_ARCH}.${ARCH_BIT}")
include(CPack)