CMakeLists.txt 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  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. WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/libjpeg-turbo
  23. BYPRODUCTS ${TJ_LIB}
  24. )
  25. file(GLOB fmt hashlink/libs/fmt/*.c)
  26. file(GLOB png hashlink/include/png/*.c)
  27. file(GLOB zlib hashlink/include/zlib/*.c)
  28. file(GLOB vorbis hashlink/include/vorbis/*.c)
  29. file(GLOB mikkt hashlink/include/mikktspace/*.c)
  30. add_library(fmt.hdll STATIC
  31. ${fmt}
  32. ${png}
  33. ${zlib}
  34. ${vorbis}
  35. ${mikkt}
  36. )
  37. add_dependencies(fmt.hdll turbojpeg)
  38. file(GLOB tj_include libjpeg-turbo/jni/vendor/libjpeg-turbo/libjpeg-turbo-*)
  39. target_link_libraries(fmt.hdll ${TJ_LIB})
  40. target_compile_definitions(fmt.hdll PRIVATE PNG_ARM_NEON_OPT=0) #disable Neon support for now
  41. target_include_directories(fmt.hdll PRIVATE
  42. hashlink/include/png
  43. hashlink/include/mikktspace
  44. hashlink/include/vorbis
  45. hashlink/include/zlib
  46. ${tj_include}
  47. )
  48. # SDL
  49. add_subdirectory(sdl2)
  50. file(GLOB sdl hashlink/libs/sdl/*.c)
  51. add_library(sdl.hdll STATIC ${sdl})
  52. target_include_directories(sdl.hdll PUBLIC sdl2/include)
  53. target_link_libraries(sdl.hdll SDL2 EGL GLESv3)
  54. # OpenAL
  55. configure_file(${CMAKE_CURRENT_SOURCE_DIR}/openal-nativetools/CMakeLists.txt ${CMAKE_CURRENT_SOURCE_DIR}/openal-soft COPYONLY)
  56. add_subdirectory(openal-soft)
  57. file(GLOB openal hashlink/libs/openal/*.c)
  58. add_library(openal.hdll STATIC ${openal})
  59. target_include_directories(openal.hdll PUBLIC openal-soft/include)
  60. target_link_libraries(openal.hdll OpenAL)
  61. # UI
  62. file(GLOB ui hashlink/libs/ui/ui_stub.c)
  63. add_library(ui.hdll STATIC ${ui})
  64. # Heaps Application
  65. add_library(heapsapp SHARED out/main.c )
  66. target_include_directories(heapsapp PRIVATE out)
  67. target_link_libraries(heapsapp hl sdl.hdll fmt.hdll openal.hdll ui.hdll)