-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathenhanced_example.bodge
More file actions
41 lines (32 loc) · 1.42 KB
/
enhanced_example.bodge
File metadata and controls
41 lines (32 loc) · 1.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# Enhanced Bodge Configuration Example
# This demonstrates targets, sequences, and automatic source collection
name: Multi-Target Example Project
compiler: g++
# Automatic Source Collection:
# Use "src/**" to recursively collect all C++ files from src and subdirectories
# Use "src/*" to collect all C++ files from src directory only
# Use "src/specific.cpp" for individual files
# Files are automatically ordered based on dependency analysis
# Global settings applied to all targets
global_cxx_flags: -std=c++17, -Wall, -Wextra, -static-libgcc, -static-libstdc++
global_include_dirs: include, external/headers
# Target: Main executable (using automatic source collection)
main.type: exe
main.output_name: my_app
main.sources: src/**
main.libraries: mylib
# Target: Shared library (using automatic source collection)
mylib.type: shared
mylib.output_name: mylib
mylib.sources: src/lib/**
mylib.cxx_flags: -O2, -fPIC
# Target: Static library (using automatic source collection)
tools.type: static
tools.output_name: tools
tools.sources: src/tools/**
# Sequence: Build all and deploy
sequence.build_all: build:mylib build:tools build:main
# Sequence: Deploy (build, copy files, create directories)
sequence.deploy: build:mylib build:main mkdir:dist copy:my_app.exe->dist/my_app.exe copy:mylib.dll->dist/mylib.dll copy:config->dist/config
# Sequence: Clean (remove build artifacts)
sequence.clean: remove:*.exe remove:*.dll remove:*.lib remove:dist