Commit Graph

74 Commits

Author SHA1 Message Date
Lephenixnoir f83ea7e3d3
fxsdk: restore almost-original CG icon, but with the GIMP template 2023-03-12 22:07:30 +01:00
Lephenixnoir 4b980d949b
fxsdk: another failed attempt at a better CG icon 2023-03-12 20:55:48 +01:00
Lephenixnoir d6ed47b133
fxsdk: add build-cg-push to default .gitignore 2023-01-19 21:35:22 +01:00
Lephenixnoir 7b2294d8c0
fxsdk: don't generate G3A in fastload, use bin 2023-01-17 10:13:11 +01:00
Lephenixnoir d91e6b7497
fxsdk: add build-cg-push command (no send yet) 2023-01-17 09:58:16 +01:00
Lephenixnoir c9e9f347e4
fxsdk: GIMP icon template and new default icon 2023-01-02 17:56:25 +01:00
Lephenixnoir e31d053a08
fxsdk: handle parentheses in paths for fxgxa
Quotes are still impossible because CMake is unredeemable in that
regard.
2022-11-25 10:56:59 +01:00
Lephenixnoir 1a443454c9
fxsdk: provide an FXSDK_TOOLCHAIN variable (= "sh-elf-") 2022-10-29 14:37:28 +02:00
Lephenixnoir b8e2897560
fxsdk: add an OTHER_MACROS argument to find_simple_library() 2022-08-29 21:20:12 +02:00
Lephenixnoir 223cd31b6c
fxsdk: compatibility with CMake 3.24 2022-08-29 00:34:55 +02:00
Lephenixnoir aae8b951c0
fxsdk: add --no-warn-rwx-segments in linker options 2022-08-21 09:40:29 +02:00
Lephenixnoir 147ff08869
fxsdk: add sysroot, support for listdc++, README tutorial, LICENSE
This commit mainly introduces an almost-normal sysroot where the
compiler and libs will be installed. This is done in order to properly
build libstdc++-v3 from the GCC tree while also cleaning up the
slightly chaotic current install system.

* Add an `fxsdk --version` command
* Redo the README like a translation of the French topic
* Up default project to gint 2.9 to help get migrations right
* Add new `fxsdk path` command reporting important folders
* Add new CMake variables FXSDK_SYSROOT, FXSDK_INCLUDE, FXSDK_LIB so
  CMake can access the information of `fxsdk path`
* fxSDK is now in charge of removing the entire sysroot including the
  cross-compiler
* Add a LICENSE file
2022-08-19 14:38:19 +02:00
Lephenixnoir 1a7939bbb9
fxsdk: fix long-standing typo in default .gitignore 2022-07-16 18:18:57 +01:00
Lephenixnoir c517447a02
fxsdk: finally implement the send-fx and send-cg commands 2022-04-15 10:53:56 +01:00
Lephenixnoir 2cc5d7ac5b
implement fxgxa and use it in both build systems 2022-03-20 19:58:11 +00:00
Lephenixnoir 5feca5d2e1
cmake: allow single quotes in paths for generate_g3a() 2022-03-19 19:32:57 +00:00
Lephenixnoir e8c7084942
fxsdk: avoid quote in heredoc for Mac OS
Not sure what's happening here.
2022-02-18 10:47:25 +01:00
Lephenixnoir 9e097109bc
cmake: allow assets at root of project in fxconv_declare_assets() 2022-01-05 19:15:35 +01:00
Lephenixnoir afc6d51217
fxsdk: add more fxg1a/mkg3a flags in generate_{g1a,g3a}() 2021-11-18 23:16:17 +01: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 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 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 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 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 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 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 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 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 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 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
Lephenixnoir 203572b2af
fxsdk: add a sensible .gitignore when creating projects 2020-12-30 20:58:37 +01:00