Skip to content

Commit

Permalink
#2257: deploy scripts as shared libs
Browse files Browse the repository at this point in the history
  • Loading branch information
nesbox committed May 19, 2024
1 parent 765b092 commit 3dfc2ed
Show file tree
Hide file tree
Showing 32 changed files with 1,935 additions and 2,091 deletions.
359 changes: 95 additions & 264 deletions .github/workflows/build.yml

Large diffs are not rendered by default.

18 changes: 10 additions & 8 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,20 @@ message("VERSION_HASH: ${VERSION_HASH}")

configure_file("${PROJECT_SOURCE_DIR}/version.h.in" "${CMAKE_CURRENT_BINARY_DIR}/version.h")

if(ANDROID OR EMSCRIPTEN OR N3DS OR RPI)
set(BUILD_LIBRETRO_DEFAULT OFF)
set(BUILD_PLAYER_DEFAULT OFF)
set(BUILD_TOOLS OFF)
if(ANDROID OR EMSCRIPTEN OR N3DS OR BAREMETALPI)
set(BUILD_STATIC_DEFAULT ON)
else()
set(BUILD_LIBRETRO_DEFAULT ON)
set(BUILD_PLAYER_DEFAULT ON)
set(BUILD_TOOLS ON)
set(BUILD_STATIC_DEFAULT OFF)
endif()

set(BUILD_PLAYER_DEFAULT OFF)
set(BUILD_LIBRETRO_DEFAULT OFF)
set(BUILD_TOUCH_INPUT_DEFAULT ${ANDROID})
set(BUILD_TOOLS OFF)
set(BUILD_WITH_ALL_DEFAULT OFF)

option(BUILD_STATIC "Static runtime" ON)
option(BUILD_STATIC "Static runtime" ${BUILD_STATIC_DEFAULT})
option(BUILD_WITH_ALL "Build all supported scripts" ${BUILD_WITH_ALL_DEFAULT})
option(BUILD_SDL "SDL Enabled" ON)
option(BUILD_SDLGPU "SDL GPU Enabled" OFF)
option(BUILD_SOKOL "Sokol Enabled" OFF)
Expand Down Expand Up @@ -66,6 +67,7 @@ target_compile_definitions(runtime INTERFACE BUILD_DEPRECATED)
message("BUILD_STATIC: ${BUILD_STATIC}")
message("BUILD_SDLGPU: ${BUILD_SDLGPU}")
message("BUILD_TOUCH_INPUT: ${BUILD_TOUCH_INPUT}")
message("BUILD_WITH_ALL: ${BUILD_WITH_ALL}")

if (N3DS)
set(BUILD_SDL OFF)
Expand Down
2 changes: 1 addition & 1 deletion build/android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ android {
arguments "APP_PLATFORM=android-31"
}
cmake {
arguments "-DBUILD_WITH_MRUBY=Off", "-DBUILD_PRO=Off", "-DCMAKE_BUILD_TYPE=MinSizeRel"
arguments "-DBUILD_WITH_MRUBY=OFF", "-DBUILD_PRO=Off", "-DCMAKE_BUILD_TYPE=MinSizeRel", "-DBUILD_WITH_ALL=ON"
}
}
}
Expand Down
1 change: 1 addition & 0 deletions build/baremetalpi/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ LIBS := \
$(TIC80LIB)/libtic80core.a \
$(TIC80LIB)/libgiflib.a \
$(TIC80LIB)/liblpeg.a \
$(TIC80LIB)/libluaapi.a \
$(TIC80LIB)/liblua.a \
$(TIC80LIB)/libmoon.a \
$(TIC80LIB)/libfennel.a \
Expand Down
2 changes: 1 addition & 1 deletion cmake/core.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -108,5 +108,5 @@ if(BUILD_DEPRECATED)
endif()

if(LINUX)
target_link_libraries(tic80core PRIVATE m)
target_link_libraries(tic80core PRIVATE m dl)
endif()
5 changes: 4 additions & 1 deletion cmake/fennel.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
# Fennel
################################

option(BUILD_WITH_FENNEL "Fennel Enabled" ${BUILD_WITH_ALL})
message("BUILD_WITH_FENNEL: ${BUILD_WITH_FENNEL}")

if(BUILD_WITH_FENNEL)

add_library(fennel ${TIC_RUNTIME} ${CMAKE_SOURCE_DIR}/src/api/fennel.c)
Expand All @@ -10,7 +13,7 @@ if(BUILD_WITH_FENNEL)
set_target_properties(fennel PROPERTIES PREFIX "")
endif()

target_link_libraries(fennel PRIVATE lua runtime)
target_link_libraries(fennel PRIVATE runtime luaapi)
target_include_directories(fennel
PRIVATE
${THIRDPARTY_DIR}/fennel
Expand Down
4 changes: 1 addition & 3 deletions cmake/janet.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@
# Janet
################################

set(BUILD_WITH_JANET_DEFAULT TRUE)

option(BUILD_WITH_JANET "Janet Enabled" ${BUILD_WITH_JANET_DEFAULT})
option(BUILD_WITH_JANET "Janet Enabled" ${BUILD_WITH_ALL})
message("BUILD_WITH_JANET: ${BUILD_WITH_JANET}")

if(BUILD_WITH_JANET)
Expand Down
38 changes: 17 additions & 21 deletions cmake/lua.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,9 @@
# LUA
################################

set(BUILD_WITH_LUA_DEFAULT TRUE)
set(BUILD_WITH_MOON_DEFAULT TRUE)
set(BUILD_WITH_FENNEL_DEFAULT TRUE)

option(BUILD_WITH_LUA "Lua Enabled" ${BUILD_WITH_LUA_DEFAULT})
option(BUILD_WITH_LUA "Lua Enabled" ON)
message("BUILD_WITH_LUA: ${BUILD_WITH_LUA}")

option(BUILD_WITH_MOON "Moon Enabled" ${BUILD_WITH_MOON_DEFAULT})
message("BUILD_WITH_MOON: ${BUILD_WITH_MOON}")

option(BUILD_WITH_FENNEL "Fennel Enabled" ${BUILD_WITH_FENNEL_DEFAULT})
message("BUILD_WITH_FENNEL: ${BUILD_WITH_FENNEL}")

if(BUILD_WITH_MOON OR BUILD_WITH_FENNEL)
set(BUILD_WITH_LUA TRUE)
endif()

if(BUILD_WITH_LUA)

set(LUA_DIR ${THIRDPARTY_DIR}/lua)
Expand Down Expand Up @@ -58,18 +44,28 @@ if(BUILD_WITH_LUA)
${LUA_DIR}/lbitlib.c
)

list(APPEND LUA_SRC ${CMAKE_SOURCE_DIR}/src/api/lua.c)
list(APPEND LUA_SRC ${CMAKE_SOURCE_DIR}/src/api/parse_note.c)
add_library(luaapi STATIC
${LUA_SRC}
${CMAKE_SOURCE_DIR}/src/api/luaapi.c
${CMAKE_SOURCE_DIR}/src/api/parse_note.c
)

add_library(lua ${TIC_RUNTIME} ${LUA_SRC})
add_library(lua ${TIC_RUNTIME} ${CMAKE_SOURCE_DIR}/src/api/lua.c)

if(NOT BUILD_STATIC)
set_target_properties(lua PROPERTIES PREFIX "")
endif()

target_link_libraries(lua PRIVATE runtime)
target_link_libraries(lua PRIVATE runtime luaapi)

target_compile_definitions(luaapi PRIVATE LUA_COMPAT_5_2)

target_include_directories(luaapi
PUBLIC ${THIRDPARTY_DIR}/lua
${CMAKE_SOURCE_DIR}/include
${CMAKE_SOURCE_DIR}/src
)

target_compile_definitions(lua PRIVATE LUA_COMPAT_5_2)
target_include_directories(lua
PUBLIC ${THIRDPARTY_DIR}/lua
PRIVATE
Expand All @@ -78,7 +74,7 @@ if(BUILD_WITH_LUA)
)

if(N3DS)
target_compile_definitions(lua PUBLIC LUA_32BITS)
target_compile_definitions(luaapi PUBLIC LUA_32BITS)
endif()

target_compile_definitions(lua INTERFACE TIC_BUILD_WITH_LUA)
Expand Down
5 changes: 4 additions & 1 deletion cmake/moon.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
# MoonScript
################################

option(BUILD_WITH_MOON "Moon Enabled" ${BUILD_WITH_ALL})
message("BUILD_WITH_MOON: ${BUILD_WITH_MOON}")

if(BUILD_WITH_MOON)

set(LPEG_DIR ${THIRDPARTY_DIR}/lpeg)
Expand All @@ -22,7 +25,7 @@ if(BUILD_WITH_MOON)
set_target_properties(moon PROPERTIES PREFIX "")
endif()

target_link_libraries(moon PRIVATE lpeg lua runtime)
target_link_libraries(moon PRIVATE lpeg runtime luaapi)

target_include_directories(moon
PRIVATE
Expand Down
12 changes: 4 additions & 8 deletions cmake/mruby.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,14 @@
# MRUBY
################################

find_program(RUBY ruby)
find_program(RAKE rake)
if(NOT RAKE)
set(BUILD_WITH_MRUBY_DEFAULT FALSE)
else()
set(BUILD_WITH_MRUBY_DEFAULT TRUE)
endif()
option(BUILD_WITH_MRUBY "mruby Enabled" ${BUILD_WITH_MRUBY_DEFAULT})
option(BUILD_WITH_MRUBY "mruby Enabled" ${BUILD_WITH_ALL})
message("BUILD_WITH_MRUBY: ${BUILD_WITH_MRUBY}")

if(BUILD_WITH_MRUBY)

find_program(RUBY ruby)
find_program(RAKE rake)

list(APPEND RUBY_SRC ${CMAKE_SOURCE_DIR}/src/api/mruby.c)
list(APPEND RUBY_SRC ${CMAKE_SOURCE_DIR}/src/api/parse_note.c)

Expand Down
2 changes: 1 addition & 1 deletion cmake/naett.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ if(USE_NAETT)
target_link_libraries(naett INTERFACE winhttp)
elseif(LINUX)
target_include_directories(naett PRIVATE ${CURL_INCLUDE_DIRS})
target_link_libraries(naett ${CURL_LIBRARIES})
target_link_libraries(naett ${CURL_LIBRARIES} pthread)
elseif(APPLE)
target_link_libraries(naett
"-framework Cocoa")
Expand Down
4 changes: 1 addition & 3 deletions cmake/pocketpy.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@
# pocketpy (Python)
################################

set(BUILD_WITH_PYTHON_DEFAULT TRUE)

option(BUILD_WITH_PYTHON "Python Enabled" ${BUILD_WITH_PYTHON_DEFAULT})
option(BUILD_WITH_PYTHON "Python Enabled" ${BUILD_WITH_ALL})
message("BUILD_WITH_PYTHON: ${BUILD_WITH_PYTHON}")

if(BUILD_WITH_PYTHON)
Expand Down
4 changes: 1 addition & 3 deletions cmake/quickjs.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@
# QuickJS
################################

set(BUILD_WITH_JS_DEFAULT TRUE)

option(BUILD_WITH_JS "JS Enabled" ${BUILD_WITH_JS_DEFAULT})
option(BUILD_WITH_JS "JS Enabled" ${BUILD_WITH_ALL})
message("BUILD_WITH_JS: ${BUILD_WITH_JS}")

if(BUILD_WITH_JS)
Expand Down
4 changes: 1 addition & 3 deletions cmake/scheme.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@
# SCHEME (S7)
################################

set(BUILD_WITH_SCHEME_DEFAULT TRUE)

option(BUILD_WITH_SCHEME "Scheme Enabled" ${BUILD_WITH_SCHEME_DEFAULT})
option(BUILD_WITH_SCHEME "Scheme Enabled" ${BUILD_WITH_ALL})
message("BUILD_WITH_SCHEME: ${BUILD_WITH_SCHEME}")

if(BUILD_WITH_SCHEME)
Expand Down
24 changes: 6 additions & 18 deletions cmake/sdl.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ if(BUILD_SDL AND NOT EMSCRIPTEN AND NOT RPI)
set(SDL_STATIC_PIC ON CACHE BOOL "" FORCE)
endif()

set(SDL_SHARED OFF CACHE BOOL "" FORCE)

add_subdirectory(${THIRDPARTY_DIR}/sdl2)

endif()
Expand Down Expand Up @@ -39,13 +41,7 @@ if(BUILD_SDL AND BUILD_PLAYER AND NOT RPI)
target_link_options(player-sdl PRIVATE -static)
endif()

target_link_libraries(player-sdl PRIVATE tic80core SDL2main)

if(BUILD_STATIC)
target_link_libraries(player-sdl PRIVATE SDL2-static)
else()
target_link_libraries(player-sdl PRIVATE SDL2)
endif()
target_link_libraries(player-sdl PRIVATE tic80core SDL2main SDL2-static)
endif()

################################
Expand Down Expand Up @@ -117,11 +113,7 @@ if(ANDROID)
endif()

if(NOT EMSCRIPTEN)
if(BUILD_STATIC)
target_link_libraries(sdlgpu SDL2-static)
else()
target_link_libraries(sdlgpu SDL2)
endif()
target_link_libraries(sdlgpu SDL2-static)
endif()

endif()
Expand Down Expand Up @@ -190,13 +182,9 @@ if(BUILD_SDL)
else()
if(EMSCRIPTEN)
elseif(RPI)
target_link_libraries(tic80 libSDL2.a bcm_host)
target_link_libraries(tic80 libSDL2.a bcm_host pthread)
else()
if(BUILD_STATIC)
target_link_libraries(tic80 SDL2-static)
else()
target_link_libraries(tic80 SDL2)
endif()
target_link_libraries(tic80 SDL2-static)
endif()
endif()

Expand Down
4 changes: 1 addition & 3 deletions cmake/squirrel.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@
# SQUIRREL
################################

set(BUILD_WITH_SQUIRREL_DEFAULT TRUE)

option(BUILD_WITH_SQUIRREL "Squirrel Enabled" ${BUILD_WITH_SQUIRREL_DEFAULT})
option(BUILD_WITH_SQUIRREL "Squirrel Enabled" ${BUILD_WITH_ALL})
message("BUILD_WITH_SQUIRREL: ${BUILD_WITH_SQUIRREL}")

if(BUILD_WITH_SQUIRREL)
Expand Down
4 changes: 1 addition & 3 deletions cmake/wasm.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@
# WASM
################################

set(BUILD_WITH_WASM_DEFAULT TRUE)

option(BUILD_WITH_WASM "Wasm Enabled" ${BUILD_WITH_WASM_DEFAULT})
option(BUILD_WITH_WASM "Wasm Enabled" ${BUILD_WITH_ALL})
message("BUILD_WITH_WASM: ${BUILD_WITH_WASM}")

if(BUILD_WITH_WASM)
Expand Down
4 changes: 1 addition & 3 deletions cmake/wren.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@
# WREN
################################

set(BUILD_WITH_WREN_DEFAULT TRUE)

option(BUILD_WITH_WREN "WREN Enabled" ${BUILD_WITH_WREN_DEFAULT})
option(BUILD_WITH_WREN "WREN Enabled" ${BUILD_WITH_ALL})
message("BUILD_WITH_WREN: ${BUILD_WITH_WREN}")

if(BUILD_WITH_WREN)
Expand Down
16 changes: 13 additions & 3 deletions include/tic80_config.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,9 @@
# undef __TIC_WINDOWS__
# define __TIC_WINDOWS__ 1
# define TIC_MODULE_EXT ".dll"
# if defined(_MSC_VER) && defined(_USING_V110_SDK71_)
# define __TIC_WIN7__ 1
# endif
# if defined(_MSC_VER) && defined(_USING_V110_SDK71_)
# define __TIC_WIN7__ 1
# endif
#endif

#if defined(ANDROID) || defined(__ANDROID__)
Expand All @@ -52,6 +52,16 @@
# define TIC_MODULE_EXT ".so"
#endif

#if defined(TIC_RUNTIME_STATIC)
# define TIC_EXPORT
#else
# if defined(__TIC_WINDOWS__)
# define TIC_EXPORT __declspec(dllexport)
# elif defined(__GNUC__) && __GNUC__ >= 4
# define TIC_EXPORT __attribute__ ((visibility("default")))
# endif
#endif

#ifndef TIC80_API
# if defined(TIC80_SHARED)
# if defined(__TIC_WINDOWS__)
Expand Down

0 comments on commit 3dfc2ed

Please sign in to comment.