Commit Graph

48 Commits

Author SHA1 Message Date
Antonio Niño Díaz
e252d7b4c4 core: Update dynamic library linker options 2025-05-10 02:26:34 +01:00
jonko0493
32e8c15bd5 fix: Rectify typo in compdb generation code 2025-05-09 21:15:13 +01:00
Antonio Niño Díaz
a2620525fe gitignore: Add compile_commands.json files to gitignore 2025-05-09 21:07:36 +01:00
Antonio Niño Díaz
76ee6c540a core: Remove compile_commands.json file with the clean command 2025-05-09 21:06:57 +01:00
Antonio Niño Díaz
fdae0188b7 core: Optimize generation of compile_commands.json file
Thanks to @jonko0493 for the suggestion
2025-05-09 21:06:41 +01:00
Antonio Niño Díaz
fc09001a4b core: docs: Add support to generate compile_commands.json
Thanks to ninja-build, all we need to do is to run one command [1] and
we can get a compile_commands.json from a ninja.build file.

This commit adds a new argument (-j or --compdb) to let users generate a
compile_commands.json file.

[1] https://ninja-build.org/manual.html#_extra_tools
2025-05-09 20:58:58 +01:00
Antonio Niño Díaz
f2aa6f6e0d docs: Update setup instructions 2025-05-09 20:39:20 +01:00
Antonio Niño Díaz
378ec332fa core: Update version number to 0.3.1 2025-04-30 23:10:28 +01:00
Antonio Niño Díaz
420d9addf8 examples: Add example of using LibXM7 with files in NitroFS
The only example in the repository was using files included in the ARM9
binary, which isn't a very useful thing to do in games when they start
growing.
2025-04-30 18:50:49 +01:00
Antonio Niño Díaz
4dc870fe85 core: Let users use any prebuilt ARM7 core
The old code would only let developers use the default ARM7 core, but
BlocksDS now comes with several builds of the ARM7 core with different
settings, so it's useful to be able to pick which one to use.
2025-04-30 18:10:13 +01:00
Antonio Niño Díaz
c32677b802 core: Fix linker invocation for C++
This commit is equivalent to the following commit of the BlocksDS SDK
repository:

afb89fede0

Using g++ to link object files automatically links the STD of C++. It looks
like this library is linked outside of the start/end-group commands with
the other libraries, which causes undefined reference errors when linking
C++ projects that use standard library functions that interface with the
OS, like `fopen()`.

Thanks to @lifehackerhansol for the report and testing the fix.
2025-04-30 18:06:56 +01:00
Antonio Niño Díaz
88d1d2d2f9 core: Update version number to 0.3.0 2025-03-26 18:12:39 +00:00
Antonio Niño Díaz
68dfa76c15 core: Move some code to the GenericBinary class 2025-03-23 11:38:12 +01:00
Antonio Niño Díaz
3ed53d516c core: Support generating standalone DSL files
Normally, you require to add the DSL files to a filesystem object so that
ArchitectDS generates all rules correctly. The new function allows you to
build a dynamic library outside of the source tree by not requiring any
other object to generate the file with all required build rules.
2025-03-23 02:48:07 +01:00
Antonio Niño Díaz
cec5eca94d docs: Clarify readme 2025-03-23 01:58:37 +01:00
Antonio Niño Díaz
ab8153d666 core: Add ArchitectDS version to generated build.ninja files 2025-03-22 13:27:14 +01:00
Antonio Niño Díaz
d6ec12e1e6 core: Support DSL files that don't require the main binary 2025-03-22 13:23:31 +01:00
Antonio Niño Díaz
e42a00b12f core: Extract ninja rules generation out of NDS ROM object
This will be required for DSL files as well.
2025-03-22 13:22:32 +01:00
Antonio Niño Díaz
258d1fea78 core: Add initial support for ARM9 dynamic libraries
They must be added to a filesystem, it makes no sense to have them
embedded in the ARM9 as data.
2025-03-22 02:38:38 +01:00
Antonio Niño Díaz
d65bcdcd2d core: Document missing argument of Teak binaries 2025-03-22 01:47:30 +01:00
Antonio Niño Díaz
7aa01b1f13 examples: Clarify some comments 2024-12-17 00:38:52 +00:00
Antonio Niño Díaz
ccfc657a68 license: Add explicit license file
This was already specified in the ArchitectDS script itself, but it's
better to have the full text of the license in the repository.
2024-12-13 01:45:13 +00:00
Angel Tomkins
f04dafa739 core: Allow users to set ldflags 2024-06-28 01:48:44 +02:00
Antonio Niño Díaz
560179e666 examples: Change cflags in debug builds in debugging example 2024-06-23 03:01:41 +01:00
Antonio Niño Díaz
5df80eb154 examples: Check for errors when loading 3D textures 2024-06-02 03:32:58 +01:00
Antonio Niño Díaz
5bb651f1b9 examples: Add example of GL2D sprite sets loaded from NitroFS 2024-06-01 01:37:42 +01:00
Antonio Niño Díaz
6f57d68d78 core: Support GL2D sprite sets in filesystems 2024-06-01 01:36:30 +01:00
Antonio Niño Díaz
56cfe96cca core: Define temporary path for filesystem artifacts
This is required because in some cases there are intermediate files between
the source files and the target files. The target files need to be added to
the filesystem image, but the source and intermediate files don't. With a
temporary path, intermediate files can be saved there.

This is needed for GL2D sprite sets stored in NitroFS, which will be
implemented in a future commit.
2024-06-01 01:36:01 +01:00
Antonio Niño Díaz
eb865c1ee6 core: Simplify invocation of squeezerw 2024-05-31 19:44:15 +01:00
Antonio Niño Díaz
cc59126f7a core: Add DSF files to dependency list correctly 2024-05-31 18:54:21 +01:00
Antonio Niño Díaz
8b90738bd4 examples: Add GL2D sprite set example 2024-05-31 18:21:45 +01:00
Antonio Niño Díaz
5c79fa367f core: Support injecting GL2D sprite sets to ARM9 binaries 2024-05-31 18:21:28 +01:00
Antonio Niño Díaz
3294c8d5cf core: Increase version number to 0.2.1 2024-03-08 01:10:05 +00:00
jonko0493
4ceaf2d4ba Suppress warnings from includes
This switches the `-I` includes to `-isystem `. Doing this suppresses
warnings from libnds and other includes which can be rather annoying
when trying to debug a project's code.
2024-03-08 01:06:22 +00:00
Antonio Niño Díaz
41e79e5bcf examples: Add example of rich text fonts from RAM in NE 2024-03-07 01:31:38 +00:00
Antonio Niño Díaz
5080b4e335 examples: Fix incorrect comment 2024-03-06 23:05:12 +00:00
Antonio Niño Díaz
7dd9663caf examples: Add Nitro Engine volumetric shadows examples 2024-03-06 22:18:05 +00:00
Antonio Niño Díaz
d1e6ed38ef examples: Add example of rich text with Nitro Engine 2024-03-03 02:48:27 +00:00
Antonio Niño Díaz
04cdac1f2a examples: Add libdsf examples 2024-02-29 02:18:08 +00:00
Antonio Niño Díaz
1177fa8581 build: Increment version number to 0.2.0 2024-02-28 02:39:58 +00:00
Antonio Niño Díaz
7a1692722e build: Support '.fnt' BMFont files 2024-02-28 02:39:47 +00:00
Antonio Niño Díaz
7fda554022 build: Remove redundant line 2024-02-28 02:39:18 +00:00
Antonio Niño Díaz
38630ee641 examples: Improve conversion args of 16-bit textures 2024-02-16 11:43:30 +00:00
Antonio Niño Díaz
e6bbbdfb67 core: Fix invocation of python scripts from ninja rules 2024-02-10 03:16:33 +00:00
Antonio Niño Díaz
403003dee6 core: Fix environment variables on Windows 2024-02-10 01:57:38 +00:00
Antonio Niño Díaz
a73eabafa9 examples: Add gbajpeg examples 2024-02-02 00:11:58 +00:00
Antonio Niño Díaz
9c6f34d1d0 examples: Remove references to makefiles 2024-02-01 18:24:17 +00:00
Antonio Niño Díaz
de58ecb7ad all: Import initial version and examples 2024-02-01 18:17:54 +00:00