Added install routine to CMake and added a classic Makefile as a wrapper for easy building.
This commit is contained in:
parent
05818899fe
commit
dbd8b73134
2 changed files with 47 additions and 0 deletions
|
|
@ -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
28
Makefile
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue