Makefile: improve java & native targets
So that they get rebuilt if any of their files changes
This commit is contained in:
60
Makefile
60
Makefile
@@ -121,15 +121,27 @@ else
|
||||
endif
|
||||
|
||||
ifeq ($(detected_OS),Windows)
|
||||
define to_win_path
|
||||
$(subst /,\,$(1))
|
||||
endef
|
||||
define remove_dir
|
||||
if exist $(1) ( $(RM) $(1) )
|
||||
endef
|
||||
define remove_files
|
||||
$(foreach file,$(call to_win_path,$(1)), IF EXIST $(file) ( $(RMFILE) $(file) ) & )
|
||||
endef
|
||||
else
|
||||
define remove_dir
|
||||
$(RM) $(1)
|
||||
endef
|
||||
define remove_files
|
||||
$(RMFILE) $(1)
|
||||
endef
|
||||
endif
|
||||
|
||||
# Recursive wildcard: https://stackoverflow.com/a/18258352
|
||||
rwildcard=$(foreach d,$(wildcard $(1:=/*)),$(call rwildcard,$d,$2) $(filter $(subst *,%,$2),$d))
|
||||
|
||||
$(info MSBUILD_PARAM: $(MSBUILD_PARAM))
|
||||
$(info nuget path: $(shell $(WHICH) nuget))
|
||||
$(info )
|
||||
@@ -155,16 +167,35 @@ JAVA_CLEAN_TARGETS := \
|
||||
clean_KP2AKdbLibrary \
|
||||
clean_PluginQR
|
||||
|
||||
OUTPUT_JavaFileStorageTest-AS = src/java/JavaFileStorage/app/build/outputs/aar/JavaFileStorage-debug.aar src/java/android-filechooser-AS/app/build/outputs/aar/android-filechooser-release.aar
|
||||
OUTPUT_KP2ASoftkeyboard_AS =src/java/KP2ASoftkeyboard_AS/app/build/outputs/aar/app-debug.aar
|
||||
OUTPUT_Keepass2AndroidPluginSDK2 = src/java/Keepass2AndroidPluginSDK2/app/build/outputs/aar/app-release.aar
|
||||
OUTPUT_KP2AKdbLibrary = src/java/KP2AKdbLibrary/app/build/outputs/aar/app-debug.aar
|
||||
OUTPUT_PluginQR = src/java/Keepass2AndroidPluginSDK2/app/build/outputs/aar/Keepass2AndroidPluginSDK2-release.aar src/java/PluginQR/app/build/outputs/apk/debug/app-debug.apk
|
||||
INPUT_JavaFileStorageTest-AS = $(call rwildcard,src/java/android-filechooser-AS/app/src,*) $(call rwildcard,src/java/JavaFileStorage/app/src,*) $(call rwildcard,src/java/JavaFileStorageTest-AS/app/src,*.java)
|
||||
OUTPUT_JavaFileStorageTest-AS = src/java/android-filechooser-AS/app/build/outputs/aar/android-filechooser-debug.aar \
|
||||
src/java/android-filechooser-AS/app/build/outputs/aar/android-filechooser-release.aar \
|
||||
src/java/JavaFileStorage/app/build/outputs/aar/JavaFileStorage-debug.aar \
|
||||
src/java/JavaFileStorage/app/build/outputs/aar/JavaFileStorage-release.aar \
|
||||
src/java/JavaFileStorageTest-AS/app/build/outputs/apk/debug/app-debug.apk \
|
||||
src/java/JavaFileStorageTest-AS/app/build/outputs/apk/release/app-release-unsigned.apk
|
||||
|
||||
INPUT_KP2ASoftkeyboard_AS = $(call rwildcard,src/java/KP2ASoftkeyboard_AS/app/src,*)
|
||||
OUTPUT_KP2ASoftkeyboard_AS = src/java/KP2ASoftkeyboard_AS/app/build/outputs/aar/app-debug.aar \
|
||||
src/java/KP2ASoftkeyboard_AS/app/build/outputs/aar/app-release.aar
|
||||
|
||||
INPUT_Keepass2AndroidPluginSDK2 = $(call rwildcard,src/java/Keepass2AndroidPluginSDK2/app/src,*)
|
||||
OUTPUT_Keepass2AndroidPluginSDK2 = src/java/Keepass2AndroidPluginSDK2/app/build/outputs/aar/app-debug.aar \
|
||||
src/java/Keepass2AndroidPluginSDK2/app/build/outputs/aar/app-release.aar
|
||||
|
||||
INPUT_KP2AKdbLibrary = $(call rwildcard,src/java/KP2AKdbLibrary/app/src,*)
|
||||
OUTPUT_KP2AKdbLibrary = src/java/KP2AKdbLibrary/app/build/outputs/aar/app-debug.aar \
|
||||
src/java/KP2AKdbLibrary/app/build/outputs/aar/app-release.aar
|
||||
|
||||
INPUT_PluginQR = $(call rwildcard,src/java/PluginQR/app/src,*)
|
||||
OUTPUT_PluginQR = src/java/Keepass2AndroidPluginSDK2/app/build/outputs/aar/Keepass2AndroidPluginSDK2-debug.aar \
|
||||
src/java/Keepass2AndroidPluginSDK2/app/build/outputs/aar/Keepass2AndroidPluginSDK2-release.aar \
|
||||
src/java/PluginQR/app/build/outputs/apk/debug/app-debug.apk \
|
||||
src/java/PluginQR/app/build/outputs/apk/debug/app-release-unsigned.apk
|
||||
|
||||
##### Targets definition
|
||||
|
||||
.PHONY: native $(NATIVE_COMPONENTS) clean_native $(NATIVE_CLEAN_TARGETS) \
|
||||
.PHONY: native $(NATIVE_COMPONENTS) clean_native $(NATIVE_CLEAN_TARGETS) \
|
||||
java $(JAVA_COMPONENTS) clean_java $(JAVA_CLEAN_TARGETS) \
|
||||
nuget clean_nuget \
|
||||
msbuild clean_msbuild \
|
||||
@@ -177,7 +208,7 @@ all: apk
|
||||
native: $(NATIVE_COMPONENTS)
|
||||
|
||||
argon2: $(OUTPUT_argon2)
|
||||
$(OUTPUT_argon2):
|
||||
$(OUTPUT_argon2): $(wildcard src/java/argon2/phc-winner-argon2/src/*) $(wildcard src/java/argon2/phc-winner-argon2/src/blake2/*)
|
||||
cd src/java/argon2 && $(ANDROID_NDK_ROOT)/ndk-build
|
||||
|
||||
##### Java Dependencies
|
||||
@@ -190,15 +221,20 @@ Keepass2AndroidPluginSDK2: $(OUTPUT_Keepass2AndroidPluginSDK2)
|
||||
KP2AKdbLibrary: $(OUTPUT_KP2AKdbLibrary)
|
||||
PluginQR: $(OUTPUT_PluginQR)
|
||||
|
||||
$(OUTPUT_JavaFileStorageTest-AS):
|
||||
$(OUTPUT_JavaFileStorageTest-AS): $(INPUT_JavaFileStorageTest-AS)
|
||||
$(call remove_files,$(OUTPUT_JavaFileStorageTest-AS))
|
||||
cd src/java/JavaFileStorageTest-AS && $(GRADLEW) assemble
|
||||
$(OUTPUT_KP2ASoftkeyboard_AS):
|
||||
$(OUTPUT_KP2ASoftkeyboard_AS): $(INPUT_KP2ASoftkeyboard_AS)
|
||||
$(call remove_files,$(OUTPUT_KP2ASoftkeyboard_AS))
|
||||
cd src/java/KP2ASoftkeyboard_AS && $(GRADLEW) assemble
|
||||
$(OUTPUT_Keepass2AndroidPluginSDK2):
|
||||
$(OUTPUT_Keepass2AndroidPluginSDK2): $(INPUT_Keepass2AndroidPluginSDK2)
|
||||
$(call remove_files,$(OUTPUT_Keepass2AndroidPluginSDK2))
|
||||
cd src/java/Keepass2AndroidPluginSDK2 && $(GRADLEW) assemble
|
||||
$(OUTPUT_KP2AKdbLibrary):
|
||||
$(OUTPUT_KP2AKdbLibrary): $(INPUT_KP2AKdbLibrary)
|
||||
$(call remove_files,$(OUTPUT_KP2AKdbLibrary))
|
||||
cd src/java/KP2AKdbLibrary && $(GRADLEW) assemble
|
||||
$(OUTPUT_PluginQR):
|
||||
$(OUTPUT_PluginQR): $(INPUT_PluginQR)
|
||||
$(call remove_files,$(OUTPUT_PluginQR))
|
||||
cd src/java/PluginQR && $(GRADLEW) assemble
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user