Commit Graph

101 Commits

Author SHA1 Message Date
Lephenixnoir d2b6da5122
fxlink: add interactive mode to exchange data with gint 2021-05-25 20:57:22 +02:00
Lephenixnoir 30befdd2cf
cmake: automatically find libraries in FXSDK_PREFIX
This paves the way for out-of-compiler installs which might become a
relevant thing for packaging and dual gint/PrizmSDK users (if it ever
happens).
2021-05-25 20:57:22 +02:00
Lephenixnoir 6383e1a30e
README: ah, yes, the famous apt setup on Arch Linux 2021-05-10 23:33:58 +02:00
Lephenixnoir 55ed08abe5
cmake: lower minimum required version to 3.15
Version 3.15 introduces the <PREFIX>_KEYWORDS_MISSING_VALUES of the
cmake_parse_arguments() function, which is used in generate_g1a() and
generate_g3a(), so there is no way to bring it further down for free.
2021-05-10 15:25:47 +02:00
Lephenixnoir 29c7d46817
README.md: replace old command name for project creation 2021-05-10 08:41:19 +02:00
Lephenixnoir ed10e727df
fxconv: enable custom types in the fxconv-metadata.txt system
Set the custom type with "custom-type: your_type_name" (instead of using
--custom on the command-line).

The converter.py in the current directory is still auto-detected as a
custom converter, but that won't work with CMake (which builds with the
build folder as current directory). Instead, a new option --converters=
with a semicolon-separated of Python files has been added. Use
fxconv_declare_converters() from the fxSDK-provided Fxconv module to
declare them programatically in CMake.
2021-05-04 17:38:28 +02:00
Lephenixnoir ff6d3c2199
cmake: provide the noudisks2 configuration 2021-04-28 22:31:40 +02:00
Lephenixnoir 7804ccf000
bump version number 2021-04-27 16:21:12 +02:00
Lephenixnoir 3322b18ccd
update README 2021-04-27 15:42:36 +02:00
Lephenixnoir 654ea8fa26
fxlink: basic implementation of the bulk transfer mode 2021-04-27 15:42:02 +02:00
Lephenixnoir d09ad9dd17
cmake: fix replacement pattern that finds sh-elf-objcopy
The previous one would fail if "gcc" was in the install path.
2021-04-17 15:59:35 +02:00
Lephenixnoir 42bc49b89a
cmake: use PkgConfig to find libpng
The FindPNG module fails catastrophically on Mac OS because it searches
for the library and header independently, and ends up pulling a
completely unrelated header from a random framework.
2021-04-11 20:27:25 +02:00
Lephenixnoir 2c6a46963d
fxlink: replace __VA_OPT__ with the ugly paste hack
Good job Clang, you really messed up that one.
2021-04-10 22:57:31 +02:00
Lephenixnoir 1ad9079d90
fxg1a, mkg3a: change argument order for musl compatibility
The musl getopt does not swap arguments and requires every option to
precede every non-option. Do that in the CMake functions generate_g1a()
and generate_g3a().
2021-04-10 07:42:31 +02:00
Lephenixnoir c059e2395d
fxlink: new tool with features from libusb and (optionally) UDisks2 2021-04-03 11:58:30 +02:00
Lephenixnoir 1a295958ee
use CMake to build the fxSDK 2021-04-03 11:39:26 +02:00
Lephenixnoir 6415476fe3
cmake: disable default x86/x64 flags on OSes that provide them 2021-03-06 11:50:52 +01:00
Lephenixnoir c3d9b53758
fxsdk: forward errors during make 2021-01-31 19:06:21 +01:00
Lephenixnoir 0db7ae9e2b
cmake: detect compiler install path in a LANG-agnostic way 2021-01-30 23:01:28 +01:00
Lephenixnoir 8259e2dfc8
fxconv: add a generic name_regex parameter to simplify naming 2021-01-29 14:29:36 +01:00
Lephenixnoir 2596a53c6b
(irrelevant fixes) 2021-01-29 14:29:25 +01:00
Lephenixnoir 8eed69b7a0
fxsdk: do not build if CMake fails 2021-01-28 22:15:41 +01:00
Lephenixnoir 51e60fcf06
cmake: add a utility to find simple libraries 2021-01-28 22:15:41 +01:00
Lephenixnoir 74766f381b
fxsdk: enable missing options on new projects 2021-01-27 22:21:39 +01:00
Lephenixnoir 0902fdc904
cmake: provide a function to set up assets' language and dependencies 2021-01-27 20:32:34 +01:00
Lephenixnoir 4e1e3c86b4
avoid warnings when FXSDK_CMAKE_MODULE_PATH is unused 2021-01-27 15:26:43 +01:00
Lephenixnoir 70ff9ba6b8
fxsdk: define TARGET_FX9860G and TARGET_FXCG50 in Makefiles
The older FX9860G and FXCG50 are still supported for backwards
compatibility, but are deprecated.
2021-01-27 11:26:22 +01:00
Lephenixnoir 4a6bc4724d
fxsdk: expose CMake module folder for library installs
Adds a new CMake variable FXSDK_CMAKE_MODULE_PATH where libraries can
install CMake module files.

Also remove FindGint.cmake which is now in gint.
2021-01-27 08:46:57 +01:00
Lephenixnoir f5085e693d
fxsdk: add DSP assemblers flags 2021-01-26 10:09:03 +01:00
Lephenixnoir ad5d9bdb4c
fxsdk: update Makefile-based build system for fxconv
* Use [find] for sources since it's used for dependency files...
* Get fxconv parameters from fxconv-metadata.txt
* Approximate dependencies: every asset depends on every metadata file
* Update location of example image
2021-01-26 09:47:16 +01:00
Lephenixnoir e8bbf63d95
update README 2021-01-25 22:53:22 +01:00
Lephenixnoir 47504ff179
fxconv: replace _encode_{word,long} with u16, u32 2021-01-25 19:12:46 +01:00
Lephenixnoir 53ea134c62
fxsdk: add options to fxsdk build 2021-01-25 10:40:55 +01:00
Lephenixnoir 1992aac4bd
cmake: define FXSDK_COMPILER_INSTALL for library installs 2021-01-23 15:02:42 +01:00
Lephenixnoir fe36c99f98
cmake: reconfigure based on Makefile, not folder
This way [fxsdk build-*] will reconfigure if CMake fails the first time.
2021-01-22 16:12:06 +01:00
Lephenixnoir e75c6aca59
fxsdk: do not force -m3 on fx to allow SH4 assembler 2021-01-22 16:10:40 +01:00
Lephenixnoir 985e86df77
cmake: add a helper module to retrieve version from Git tags 2021-01-22 14:42:05 +01:00
Lephenixnoir 6e24074688
remove the update command for Makefile build systems 2021-01-21 11:56:38 +01:00
Lephenixnoir 802ba12e5e
add GiteaPC support 2021-01-15 19:11:45 +01:00
Lephenixnoir e2ba617405
fxsdk: command-line interface for fxSDK 2.3
* Add the CMake build system
* Use CMake as the default for new projects
* Change [fxsdk new] but continue supporting the previous signature
* Automatically configure in [fxsdk build-fx] and [fxsdk build-cg]
* Improve help screen
2021-01-14 11:07:06 +01:00
Lephenixnoir d5759423db
fxsdk: helpers for CMake build systems 2021-01-14 11:07:06 +01:00
Lephenixnoir 7a43c1253d
fxg1a: always add a sensible internal name
The internal name is required to exist and have a certain format for the
add-in to appear in the main menu; this should be enforced at the lowest
possible level to avoid unpleasant surprises.

This change defaults the internal name to essentially @INTERNAL, where
the letters of INTERNAL are the upper-case variables of every letter
found in the standard name (up to 7).
2021-01-14 11:07:01 +01:00
Lephenixnoir 94e1dd4da9
change install to include fxSDK CMake files 2021-01-12 19:01:19 +01:00
Lephenixnoir ee7c5d63ca
(small cleanup) 2021-01-12 18:53:32 +01:00
Lephenixnoir 431633612f
rewrite configure script 2021-01-11 22:23:00 +01:00
Lephenixnoir 7a4e5cde3b
fxsdk: move default project.cfg out of fxsdk.sh 2021-01-11 21:49:14 +01:00
Lephenixnoir c9b1db8221
fxsdk: remove the WIP command-line interface
The fxSDK will no longer specify the final values for these parameters,
leaving them to the user in CMakeLists.txt or project.cfg, as reasonable
defaults are good enough.
2021-01-11 21:29:04 +01:00
Lephenixnoir 42f2b5c175
fxconv: support metadata discovery in fxconv-metadata.txt
This change adds a new way for fxconv to discover metadata for file
conversions. This complements the existing mechanism of passing
parameters on the command-line.

The new mechanism activates when fxconv is called without a type
argument. Type information and metadata are searched in an
fxconv-metadata.txt file in the same folder as the resource. The
metadata file lists parameters, with some additional flexibility enabled
by the use of wildcards.

This way of declaring will replace command-line argument passing, which
currently read parameters from the unreadable and not-so-maitainable
project.cfg file. Both the GNU make and CMake build systems should use
it in the future. The current way is still supported only for older
projects and one-shot conversions outside of projects.
2021-01-11 19:21:04 +01:00
Lephenixnoir 0d6a7728a1
fix return code for build-* and -s option
No idea how that slipped in there, damn.
2021-01-07 11:50:01 +01:00
Lephenixnoir fefff0637a
add __pycache__ and .vscode to the default .gitignore 2021-01-04 13:45:56 +01:00