1
0
Fork 0
forked from fun/fun

Added install routine to CMake and added a classic Makefile as a wrapper for easy building.

This commit is contained in:
Johannes Findeisen 2025-09-14 21:29:05 +02:00
commit dbd8b73134
2 changed files with 47 additions and 0 deletions

View file

@ -4,6 +4,8 @@ project(fun C)
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)
include(GNUInstallDirs)
# Core VM/library sources
add_library(fun_core
src/bytecode.c
@ -58,3 +60,20 @@ add_custom_target(dist-clean
${CMAKE_BINARY_DIR}/.ninja_*
COMMENT "Remove build outputs and CMake-generated files (reconfigure needed)"
)
# Install rules
# - Binary
install(TARGETS fun
RUNTIME DESTINATION /usr/bin)
# - Optionally install example scripts
option(FUN_INSTALL_EXAMPLES "Install example .fun scripts" ON)
if(FUN_INSTALL_EXAMPLES)
install(DIRECTORY examples/
DESTINATION /usr/share/fun/examples
FILES_MATCHING PATTERN "*.fun")
endif()
# - Docs
install(FILES README.md LICENSE
DESTINATION /usr/share/doc/fun)

28
Makefile Normal file
View file

@ -0,0 +1,28 @@
all:
make clean
make fun
make fun_test
make test_opcodes
fun:
cmake -S . -B build -DFUN_DEBUG=ON
cmake --build build --target fun
fun_test:
cmake -S . -B build -DFUN_DEBUG=ON
cmake --build build --target fun_test
clean:
cmake --build build --target clean-build
# Or set a custom prefix: cmake --install build --prefix "$HOME/.local"
# Defaults:
# Binary: /usr/bin/fun
# Docs: /share/doc/fun/README.md, LICENSE
# Examples: /share/fun/examples/*.fun
install:
cmake --install build
test_opcodes:
cmake -S . -B build -DFUN_DEBUG=ON
cmake --build build --target test_opcodes