aboutsummaryrefslogblamecommitdiffstats
path: root/Makefile
blob: 9081adec947f2b437bbd8432c9f20b317e1efdae (plain) (tree)















































































































































































                                                                                                                                                                                                                          
# TODO: This Makefile will be removed in the future
{%- comment -%} dynamic make targets {%- endcomment -%}
{%- assign target_dir = "./target" -%}
{%- assign lib_dir = "./lib" -%}
{%- assign bin_dir = "../bin" -%}
{%- assign aarch64-linux-android-debug = "aarch64-linux-android,Android,debug" | split: "|" -%}
{%- assign aarch64-linux-android-release = "aarch64-linux-android,Android,release" | split: "|" -%}
{%- assign armv7-linux-androideabi-debug = "armv7-linux-androideabi,Android,debug" | split: "|" -%}
{%- assign armv7-linux-androideabi-release = "armv7-linux-androideabi,Android,release" | split: "|" -%}
{%- assign arm_android_targets = aarch64-linux-android-debug | concat: aarch64-linux-android-release | concat: armv7-linux-androideabi-debug | concat: armv7-linux-androideabi-release | compact -%}
{%- assign i686-linux-android-debug = "i686-linux-android,Android,debug" | split: "|" -%}
{%- assign i686-linux-android-release = "i686-linux-android,Android,release" | split: "|" -%}
{%- assign x86_64-linux-android-debug = "x86_64-linux-android,Android,debug" | split: "|" -%}
{%- assign x86_64-linux-android-release = "x86_64-linux-android,Android,release" | split: "|" -%}
{%- assign x86_android_targets = i686-linux-android-debug | concat: i686-linux-android-release | concat: x86_64-linux-android-debug | concat: x86_64-linux-android-release | compact -%}
{%- assign android_targets = arm_android_targets | concat: x86_android_targets | compact -%}
{%- assign i686-unknown-linux-gnu-debug = "i686-unknown-linux-gnu,Linux/X11,debug" | split: "|" -%}
{%- assign i686-unknown-linux-gnu-release = "i686-unknown-linux-gnu,Linux/X11,release" | split: "|" -%}
{%- assign x86_64-unknown-linux-gnu-debug = "x86_64-unknown-linux-gnu,Linux/X11,debug" | split: "|" -%}
{%- assign x86_64-unknown-linux-gnu-release = "x86_64-unknown-linux-gnu,Linux/X11,release" | split: "|" -%}
{%- assign x86_linux_targets = i686-unknown-linux-gnu-debug | concat: i686-unknown-linux-gnu-release | concat: x86_64-unknown-linux-gnu-debug | concat: x86_64-unknown-linux-gnu-release | compact -%}
{%- assign x86_64-apple-darwin-debug = "x86_64-apple-darwin,Mac OSX,debug" | split: "|" -%}
{%- assign x86_64-apple-darwin-release = "x86_64-apple-darwin,Mac OSX,release" | split: "|" -%}
{%- assign mac_osx_targets = x86_64-apple-darwin-debug | concat: x86_64-apple-darwin-release | compact -%}
{%- assign aarch64-apple-ios-debug = "aarch64-apple-ios,iOS,debug" | split: "|" -%}
{%- assign aarch64-apple-ios-release = "aarch64-apple-ios,iOS,release" | split: "|" -%}
{%- assign ios_targets = aarch64-apple-ios-debug | concat: aarch64-apple-ios-release | compact -%}
{%- assign i686-pc-windows-gnu-debug = "i686-pc-windows-gnu,Windows Desktop,debug" | split: "|" -%}
{%- assign i686-pc-windows-gnu-release = "i686-pc-windows-gnu,Windows Desktop,release" | split: "|" -%}
{%- assign x86_64-pc-windows-gnu-debug = "x86_64-pc-windows-gnu,Windows Desktop,debug" | split: "|" -%}
{%- assign x86_64-pc-windows-gnu-release = "x86_64-pc-windows-gnu,Windows Desktop,release" | split: "|" -%}
{%- assign i686-pc-windows-msvc-debug = "i686-pc-windows-msvc,Windows Desktop,debug" | split: "|" -%}
{%- assign i686-pc-windows-msvc-release = "i686-pc-windows-msvc,Windows Desktop,release" | split: "|" -%}
{%- assign x86_64-pc-windows-msvc-debug = "x86_64-pc-windows-msvc,Windows Desktop,debug" | split: "|" -%}
{%- assign x86_64-pc-windows-msvc-release = "x86_64-pc-windows-msvc,Windows Desktop,release" | split: "|" -%}
{%- assign windows_gnu_targets = i686-pc-windows-gnu-debug | concat: i686-pc-windows-gnu-release | concat: x86_64-pc-windows-gnu-debug | concat: x86_64-pc-windows-gnu-release | compact -%}
{%- assign windows_msvc_targets = i686-pc-windows-msvc-debug | concat: i686-pc-windows-msvc-release | concat: x86_64-pc-windows-msvc-debug | concat: x86_64-pc-windows-msvc-release | compact -%}
{%- assign all_targets = android_targets | concat: x86_linux_targets | concat: mac_osx_targets | concat: ios_targets | concat: windows_gnu_targets | concat: windows_msvc_targets | compact -%}
{%- assign godot_project_path_arg = "--path godot/" -%}
build-debug:
{%  for target in all_targets -%}
{%-   assign t = target | split: "," -%}
{%-   assign build_target = t[0] -%}
{%-   assign target_type = t[2] -%}
{%-   if target_type == "debug" -%}
#	make build-{{build_target}}-{{target_type}}
{%    endif %}
{%- endfor %}
build-release:
{%  for target in all_targets -%}
{%-   assign t = target | split: "," -%}
{%-   assign build_target = t[0] -%}
{%-   assign target_type = t[2] -%}
{%-   if target_type == "release" -%}
#	make build-{{build_target}}-{{target_type}}
{%    endif %}
{%- endfor %}
export-debug:
{%  for target in all_targets -%}
{%-   assign t = target | split: "," -%}
{%-   assign build_target = t[0] -%}
{%-   assign target_type = t[2] -%}
{%-   if target_type == "debug" -%}
#	make export-{{build_target}}-{{target_type}}
{%   endif %}
{%- endfor %}
export-release:
{%  for target in all_targets -%}
{%-   assign t = target | split: "," -%}
{%-   assign build_target = t[0] -%}
{%-   assign target_type = t[2] -%}
{%-   if target_type == "release" -%}
#	make export-{{build_target}}-{{target_type}}
{%    endif %}
{%- endfor %}
{%- for target in all_targets %}
{%-   assign t = target | split: "," -%}
{%-   assign build_target = t[0] -%}
{%-   assign export_target = t[1] -%}
{%-   assign target_type = t[2] -%}
{%-   capture exported_project -%}
{%-     case export_target -%}
{%-       when "Android" -%}
{{project-name}}.{{target_type}}.{{build_target}}.apk
{%-       when "Linux/X11" -%}
{{project-name}}.{{target_type}}.{{build_target}}
{%-       when "Mac OSX" -%}
{{project-name}}.{{target_type}}.{{build_target}}
{%-       when "iOS" -%}
{{project-name}}.{{target_type}}.{{build_target}}.ipa
{%-       when "Windows Desktop" -%}
{{project-name}}.{{target_type}}.{{build_target}}.exe
{%-     endcase -%}
{%-   endcapture -%}
{%-   capture lib_ext -%}
{%-     case export_target -%}
{%-       when "Android" -%}
so
{%-       when "Linux/X11" -%}
so
{%-       when "Mac OSX" -%}
dylib
{%-       when "iOS" -%}
a
{%-       when "Windows Desktop" -%}
dll
{%-     endcase -%}
{%-   endcapture -%}
{%-   capture build_arg -%}
{%-     case target_type -%}
{%-       when "debug" -%}

{%-       when "release" -%}
--release
{%-     endcase -%}
{%-   endcapture -%}
{%-   capture export_arg -%}
{%-     case target_type -%}
{%-       when "debug" -%}
--export-debug
{%-       when "release" -%}
--export
{%-     endcase -%}
{%-   endcapture %}
build-{{build_target}}-{{target_type}}:
	cargo build --target {{build_target}} {{build_arg}}
	mv -b {{target_dir}}/{{build_target}}/{{target_type}}/*.{{lib_ext}} {{lib_dir}}/{{build_target}}

export-{{build_target}}-{{target_type}}: clean build-{{build_target}}-{{target_type}}
	cd godot/ ; godot {{export_arg}} "{{export_target}}.{{build_target}}.{{target_type}}" {{bin_dir}}/{{build_target}}/{{exported_project}}
{% endfor -%}
{% comment %} static make targets {% endcomment %}
audit:
	cargo-audit audit

check: clean
	cargo check

clean:
	cargo clean

create-debug-keystore:
	keytool -keyalg RSA -genkeypair -alias androiddebugkey -keypass android -keystore {{project-name}}.debug.keystore -storepass android -dname "CN=Android Debug,O=Android,C=US" -validity 9999 -deststoretype pkcs12

create-release-keystore:
	keytool -v -genkey -v -keystore {{project-name}}.release.keystore -alias {{project-name}} -keyalg RSA -validity 10000

doc: clean
	cargo doc --no-deps --open -v

edit:
#	${EDITOR} rust/src/lib.rs &
	godot {{godot_project_path_arg}} -e &

run:
{%  case os-arch -%}
{%-   when "linux-x86" -%}
	make build-i686-unknown-linux-gnu-debug
{%-   when "linux-x86_64" -%}
	make build-x86_64-unknown-linux-gnu-debug
{%-   when "macos-x86_64" -%}
	make build-x86_64-apple-darwin-debug
{%-   when "windows-x86" -%}
#	make build-i686-pc-windows-gnu-debug
	make build-i686-pc-windows-msvc-debug
{%-   when "windows-x86_64" -%}
#	make build-x86_64-pc-windows-gnu-debug
	make build-x86_64-pc-windows-msvc-debug
{%- endcase %}
	godot {{godot_project_path_arg}} -d

shell:
	nix-shell --pure

test: clean
	cargo test