@@ -363,70 +363,93 @@ macro(nbl_android_create_apk _TARGET)
363
363
COMMAND ${ANDROID_JAVA_BIN} /keytool -genkey -keystore ${KEYSTORE_FILE} -storepass android -alias ${KEY_ENTRY_ALIAS} -keypass android -keyalg RSA -keysize 2048 -validity 10000 -dname "CN=, OU=, O=, L=, S=, C="
364
364
)
365
365
366
- set (D8_SCRIPT "${ANDROID_BUILD_TOOLS} /d8.bat" )
367
- if (NOT EXISTS ${D8_SCRIPT} )
368
- set (DEX_COMMAND ${ANDROID_BUILD_TOOLS} /d8 ./obj/eu/devsh/${TARGET_NAME}/Loader.class --output ./bin/ )
369
- else ()
370
- set (DEX_COMMAND ${D8_SCRIPT} --output ./bin/ ./obj/eu/devsh/${TARGET_NAME}/*.class )
371
- endif ()
372
- #message(FATAL_ERROR "ANDROID_BUILD_TOOLS: ${ANDROID_BUILD_TOOLS}")
373
- #message(FATAL_ERROR "ANDROID_ANDROID_JAR_LOCATION: ${ANDROID_ANDROID_JAR_LOCATION}")
374
- #set(ANDROID_JAVA_RT_JAR "C:/Program Files (x86)/Java/jre1.8.0_301/lib/rt.jar")
375
- #message(FATAL_ERROR "ANDROID_JAR: ${ANDROID_JAR}")
366
+ if ("${CMAKE_HOST_SYSTEM_NAME} " STREQUAL "Windows" )
367
+ set (D8_SCRIPT "${ANDROID_BUILD_TOOLS} /d8.bat" )
368
+
369
+ if (EXISTS ${D8_SCRIPT} )
370
+ set (DEX_COMMAND ${D8_SCRIPT} --output ./bin/ ./obj/eu/devsh/${TARGET_NAME}/*.class )
371
+ else ()
372
+ message (FATAL_ERROR "ANDROID_BUILD_TOOLS path doesn't contain D8 (DEX) bat file!" )
373
+ endif ()
374
+ else ()
375
+ set (D8_SCRIPT "${ANDROID_BUILD_TOOLS} /d8" )
376
+
377
+ if (EXISTS ${D8_SCRIPT} )
378
+ set (DEX_COMMAND ${D8_SCRIPT} ./obj/eu/devsh/${TARGET_NAME}/Loader.class --output ./bin/ )
379
+ else ()
380
+ message (FATAL_ERROR "ANDROID_BUILD_TOOLS path doesn't contain D8 (DEX) script file!" )
381
+ endif ()
382
+ endif ()
376
383
377
- if (EXISTS ${ASSET_SOURCE_DIR} )
378
- add_custom_command (
379
- OUTPUT ${APK_FILE}
384
+ set (NBL_APK_LIBRARY_DIR libs/lib/x86_64 )
385
+ set (NBL_APK_OBJ_DIR obj )
386
+ set (NBL_APK_BIN_DIR bin )
387
+ set (NBL_APK_ASSETS_DIR assets )
388
+
389
+ add_custom_target (${TARGET_NAME} _apk_deps
380
390
DEPENDS ${_TARGET}
381
391
DEPENDS ${NBL_ANDROID_MANIFEST_FILE}
382
392
DEPENDS ${NBL_ANDROID_LOADER_JAVA}
383
393
DEPENDS ${KEYSTORE_FILE}
384
394
DEPENDS ${NBL_ROOT_PATH} /android/Loader.java
385
395
WORKING_DIRECTORY ${NBL_GEN_DIRECTORY} /$<CONFIG>
386
- COMMENT "Creating ${APK_FILE_NAME} ..."
387
- COMMAND ${CMAKE_COMMAND} -E make_directory libs/lib/x86_64
388
- COMMAND ${CMAKE_COMMAND} -E make_directory obj
389
- COMMAND ${CMAKE_COMMAND} -E make_directory bin
390
- COMMAND ${CMAKE_COMMAND} -E make_directory assets
396
+
397
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${NBL_APK_LIBRARY_DIR}
398
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${NBL_APK_OBJ_DIR}
399
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${NBL_APK_BIN_DIR}
400
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${NBL_APK_ASSETS_DIR}
401
+
402
+ # main library
391
403
COMMAND ${CMAKE_COMMAND} -E copy $< TARGET_FILE:${_TARGET} > libs/lib/x86_64/$<TARGET_FILE_NAME:${_TARGET}>
392
- COMMAND ${CMAKE_COMMAND} -E copy_directory ${ASSET_SOURCE_DIR} assets
393
- COMMAND ${ANDROID_BUILD_TOOLS} /aapt package -f -m -J src -M AndroidManifest.xml -I ${ANDROID_JAR}
394
- COMMAND ${ANDROID_JAVA_BIN} /javac -d ./obj -source 1.7 -target 1.7 -bootclasspath ${ANDROID_JAVA_RT_JAR} -classpath "${ANDROID_JAR} " -sourcepath src ${NBL_ANDROID_LOADER_JAVA}
395
- COMMAND ${DEX_COMMAND}
396
- COMMAND ${ANDROID_BUILD_TOOLS} /aapt package -f -M AndroidManifest.xml -A assets -I ${ANDROID_JAR} -F ${TARGET_NAME} -unaligned.apk bin libs
397
- COMMAND ${ANDROID_BUILD_TOOLS} /zipalign -f 4 ${TARGET_NAME} -unaligned.apk ${APK_FILE_NAME}
398
- COMMAND ${ANDROID_BUILD_TOOLS} /apksigner sign --ks ${KEYSTORE_FILE} --ks-pass pass:android --key-pass pass:android --ks-key-alias ${KEY_ENTRY_ALIAS} ${APK_FILE_NAME}
399
- COMMAND ${CMAKE_COMMAND} -E copy ${APK_FILE_NAME} ${APK_FILE}
400
- COMMAND ${CMAKE_COMMAND} -E rm -rf assets
404
+
405
+ # dependencies
406
+ COMMAND ${CMAKE_COMMAND} -E copy $< TARGET_FILE:tbb> libs/lib/x86_64/$<TARGET_FILE_NAME:tbb>
407
+ COMMAND ${CMAKE_COMMAND} -E copy $< TARGET_FILE:tbbmalloc> libs/lib/x86_64/$<TARGET_FILE_NAME:tbbmalloc>
408
+ COMMAND ${CMAKE_COMMAND} -E copy $< TARGET_FILE:tbbmalloc_proxy> libs/lib/x86_64/$<TARGET_FILE_NAME:tbbmalloc_proxy>
409
+
410
+ COMMENT "Preparing for ${APK_FILE_NAME} creation..."
401
411
VERBATIM
402
412
)
413
+
414
+ if (EXISTS ${ASSET_SOURCE_DIR} )
415
+ add_custom_command (
416
+ OUTPUT ${APK_FILE}
417
+ DEPENDS ${TARGET_NAME} _apk_deps
418
+ WORKING_DIRECTORY ${NBL_GEN_DIRECTORY} /$<CONFIG>
419
+
420
+ COMMAND ${CMAKE_COMMAND} -E copy_directory ${ASSET_SOURCE_DIR} ${NBL_APK_ASSETS_DIR}
421
+ COMMAND ${ANDROID_BUILD_TOOLS} /aapt package -f -m -J src -M AndroidManifest.xml -I ${ANDROID_JAR}
422
+ COMMAND ${ANDROID_JAVA_BIN} /javac -d ./obj -source 1.7 -target 1.7 -bootclasspath ${ANDROID_JAVA_RT_JAR} -classpath "${ANDROID_JAR} " -sourcepath src ${NBL_ANDROID_LOADER_JAVA}
423
+ COMMAND ${DEX_COMMAND}
424
+ COMMAND ${ANDROID_BUILD_TOOLS} /aapt package -f -M AndroidManifest.xml -A ${NBL_APK_ASSETS_DIR} -I ${ANDROID_JAR} -F ${TARGET_NAME} -unaligned.apk bin libs
425
+ COMMAND ${ANDROID_BUILD_TOOLS} /zipalign -f 4 ${TARGET_NAME} -unaligned.apk ${APK_FILE_NAME}
426
+ COMMAND ${ANDROID_BUILD_TOOLS} /apksigner sign --ks ${KEYSTORE_FILE} --ks-pass pass:android --key-pass pass:android --ks-key-alias ${KEY_ENTRY_ALIAS} ${APK_FILE_NAME}
427
+ COMMAND ${CMAKE_COMMAND} -E copy ${APK_FILE_NAME} ${APK_FILE}
428
+ COMMAND ${CMAKE_COMMAND} -E rm -rf ${NBL_APK_ASSETS_DIR}
429
+
430
+ COMMENT "Creating ${APK_FILE_NAME} ..."
431
+ VERBATIM
432
+ )
403
433
else ()
404
434
add_custom_command (
405
- OUTPUT ${APK_FILE}
406
- DEPENDS ${_TARGET}
407
- DEPENDS ${NBL_ANDROID_MANIFEST_FILE}
408
- DEPENDS ${NBL_ANDROID_LOADER_JAVA}
409
- DEPENDS ${KEYSTORE_FILE}
410
- DEPENDS ${NBL_ROOT_PATH} /android/Loader.java
411
- WORKING_DIRECTORY ${NBL_GEN_DIRECTORY} /$<CONFIG>
412
- COMMENT "Creating ${APK_FILE_NAME} ..."
413
- COMMAND ${CMAKE_COMMAND} -E make_directory libs/lib/x86_64
414
- COMMAND ${CMAKE_COMMAND} -E make_directory obj
415
- COMMAND ${CMAKE_COMMAND} -E make_directory bin
416
- COMMAND ${CMAKE_COMMAND} -E copy $< TARGET_FILE:${_TARGET} > libs/lib/x86_64/$<TARGET_FILE_NAME:${_TARGET}>
417
- COMMAND ${ANDROID_BUILD_TOOLS} /aapt package -f -m -J src -M AndroidManifest.xml -I ${ANDROID_JAR}
418
- COMMAND ${ANDROID_JAVA_BIN} /javac -d ./obj -source 1.7 -target 1.7 -bootclasspath ${ANDROID_JAVA_RT_JAR} -classpath "${ANDROID_JAR} " -sourcepath src ${NBL_ANDROID_LOADER_JAVA}
419
- COMMAND ${DEX_COMMAND}
420
- COMMAND ${ANDROID_BUILD_TOOLS} /aapt package -f -M AndroidManifest.xml -I ${ANDROID_JAR} -F ${TARGET_NAME} -unaligned.apk bin libs
421
- COMMAND ${ANDROID_BUILD_TOOLS} /zipalign -f 4 ${TARGET_NAME} -unaligned.apk ${APK_FILE_NAME}
422
- COMMAND ${ANDROID_BUILD_TOOLS} /apksigner sign --ks ${KEYSTORE_FILE} --ks-pass pass:android --key-pass pass:android --ks-key-alias ${KEY_ENTRY_ALIAS} ${APK_FILE_NAME}
423
- COMMAND ${CMAKE_COMMAND} -E copy ${APK_FILE_NAME} ${APK_FILE}
424
- VERBATIM
425
- )
435
+ OUTPUT ${APK_FILE}
436
+ DEPENDS ${TARGET_NAME} _apk_deps
437
+ WORKING_DIRECTORY ${NBL_GEN_DIRECTORY} /$<CONFIG>
438
+
439
+ COMMAND ${ANDROID_BUILD_TOOLS} /aapt package -f -m -J src -M AndroidManifest.xml -I ${ANDROID_JAR}
440
+ COMMAND ${ANDROID_JAVA_BIN} /javac -d ./obj -source 1.7 -target 1.7 -bootclasspath ${ANDROID_JAVA_RT_JAR} -classpath "${ANDROID_JAR} " -sourcepath src ${NBL_ANDROID_LOADER_JAVA}
441
+ COMMAND ${DEX_COMMAND}
442
+ COMMAND ${ANDROID_BUILD_TOOLS} /aapt package -f -M AndroidManifest.xml -I ${ANDROID_JAR} -F ${TARGET_NAME} -unaligned.apk bin libs
443
+ COMMAND ${ANDROID_BUILD_TOOLS} /zipalign -f 4 ${TARGET_NAME} -unaligned.apk ${APK_FILE_NAME}
444
+ COMMAND ${ANDROID_BUILD_TOOLS} /apksigner sign --ks ${KEYSTORE_FILE} --ks-pass pass:android --key-pass pass:android --ks-key-alias ${KEY_ENTRY_ALIAS} ${APK_FILE_NAME}
445
+ COMMAND ${CMAKE_COMMAND} -E copy ${APK_FILE_NAME} ${APK_FILE}
446
+
447
+ COMMENT "Creating ${APK_FILE_NAME} ..."
448
+ VERBATIM
449
+ )
426
450
endif ()
427
451
endmacro ()
428
452
429
-
430
453
function (nbl_android_create_media_storage_apk )
431
454
set (TARGET_NAME android_media_storage )
432
455
string (MAKE_C_IDENTIFIER ${TARGET_NAME} TARGET_NAME_IDENTIFIER )
0 commit comments