cmake_minimum_required(VERSION 3.30) project(twnlua LANGUAGES C) find_package(Python3 COMPONENTS Interpreter) if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Debug) endif() add_subdirectory($ENV{TWNROOT} ${CMAKE_BINARY_DIR}/twn) set(FLAGS $<$>:--no-dynlib-game> ) add_custom_command( OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/game.c COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/bindgen.py $ENV{TWNROOT}/share/twn_api.json ${FLAGS} > ${CMAKE_CURRENT_SOURCE_DIR}/luabind.c DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bindgen.py $ENV{TWNROOT}/share/twn_api.json ) add_custom_command( OUTPUT ${TWN_OUT_DIR}/data/scripts/twnapi.lua COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/docgen.py $ENV{TWNROOT}/share/twn_api.json > ${TWN_OUT_DIR}/data/scripts/twnapi.lua DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/docgen.py $ENV{TWNROOT}/share/twn_api.json ) add_custom_target( twnlua_docgen ALL DEPENDS ${TWN_OUT_DIR}/data/scripts/twnapi.lua ) add_compile_definitions(LUA_32BITS=1) set(SOURCE_FILES game.c minilua.c ) use_townengine("${SOURCE_FILES}" ${TWN_OUT_DIR})