CMakeLists.txt 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. cmake_minimum_required(VERSION 3.1)
  2. project(heapsapp)
  3. include_directories(hashlink/src)
  4. # LibHL
  5. file(GLOB libhl
  6. hashlink/src/std/*.c
  7. hashlink/src/alloc.c
  8. )
  9. list(REMOVE_ITEM libhl ${CMAKE_CURRENT_SOURCE_DIR}/hashlink/src/std/debug.c)
  10. file(GLOB pcre hashlink/include/pcre/pcre*.c)
  11. add_library(hl STATIC
  12. ${pcre}
  13. ${libhl}
  14. hashlink/src/std/sys_android.c
  15. )
  16. target_include_directories(hl PRIVATE hashlink/include/pcre)
  17. target_link_libraries(hl log)
  18. # FMT
  19. set(TJ_LIB ${CMAKE_CURRENT_SOURCE_DIR}/libjpeg-turbo/obj/local/${ANDROID_ABI}/libjpeg-turbo.a)
  20. add_custom_target(turbojpeg
  21. ${ANDROID_NDK}/ndk-build APP_ABI=${ANDROID_ABI} APP_PLATFORM=${ANDROID_PLATFORM}
  22. NDK_PROJECT_PATH=./libjpeg-turbo
  23. WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
  24. BYPRODUCTS ${TJ_LIB}
  25. )
  26. file(GLOB fmt hashlink/libs/fmt/*.c)
  27. file(GLOB png hashlink/include/png/*.c)
  28. file(GLOB zlib hashlink/include/zlib/*.c)
  29. file(GLOB vorbis hashlink/include/vorbis/*.c)
  30. file(GLOB mikkt hashlink/include/mikktspace/*.c)
  31. add_library(fmt.hdll STATIC
  32. ${fmt}
  33. ${png}
  34. ${zlib}
  35. ${vorbis}
  36. ${mikkt}
  37. )
  38. add_dependencies(fmt.hdll turbojpeg)
  39. file(GLOB tj_include libjpeg-turbo/jni/vendor/libjpeg-turbo/libjpeg-turbo-*)
  40. target_link_libraries(fmt.hdll ${TJ_LIB})
  41. target_compile_definitions(fmt.hdll PRIVATE PNG_ARM_NEON_OPT=0) #disable Neon support for now
  42. target_include_directories(fmt.hdll PRIVATE
  43. hashlink/include/png
  44. hashlink/include/mikktspace
  45. hashlink/include/vorbis
  46. hashlink/include/zlib
  47. ${tj_include}
  48. )
  49. # SDL
  50. add_subdirectory(sdl2)
  51. file(GLOB sdl hashlink/libs/sdl/*.c)
  52. add_library(sdl.hdll STATIC ${sdl})
  53. target_include_directories(sdl.hdll PUBLIC sdl2/include)
  54. target_link_libraries(sdl.hdll SDL2 SDL2main EGL GLESv3)
  55. # OpenAL
  56. configure_file(${CMAKE_CURRENT_SOURCE_DIR}/openal-nativetools/CMakeLists.txt ${CMAKE_CURRENT_SOURCE_DIR}/openal-soft COPYONLY)
  57. add_subdirectory(openal-soft)
  58. file(GLOB openal hashlink/libs/openal/*.c)
  59. add_library(openal.hdll STATIC ${openal})
  60. target_include_directories(openal.hdll PUBLIC openal-soft/include)
  61. target_link_libraries(openal.hdll OpenAL)
  62. # UI
  63. file(GLOB ui hashlink/libs/ui/ui_stub.c)
  64. add_library(ui.hdll STATIC ${ui})
  65. # Heaps Application
  66. add_library(heapsapp SHARED out/main.c )
  67. target_include_directories(heapsapp PRIVATE out)
  68. target_link_libraries(heapsapp hl sdl.hdll fmt.hdll openal.hdll ui.hdll)