cmake_minimum_required(VERSION 3.16) project(mlua VERSION 1.0.0 LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) if (MSVC) add_compile_options(/source-charset:utf-8) endif() include(config/MSystem.cmake) set(COMPILER_ID ${CMAKE_CXX_COMPILER_ID}) message(STATUS "System: ${CMAKE_SYSTEM_NAME}") message(STATUS "Compiler CXX ID: ${CMAKE_CXX_COMPILER_ID}") 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() # Set output directories string(TOLOWER ${COMPILER_ID} COMPILER_ID) set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib/) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin/) add_subdirectory(lua) add_subdirectory(fs) 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() 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) # ********************************************************** pack infomation 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 ") 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 ") 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)