CMakeLists.txt 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. set(MINIMP3_INCLUDE_DIR ${INCLUDES_BASE_DIR}/minimp3)
  2. set(MIKKTSPACE_INCLUDE_DIR ${INCLUDES_BASE_DIR}/mikktspace)
  3. if(WIN32)
  4. set(ZLIB_INCLUDE_DIRS ${INCLUDES_BASE_DIR}/zlib)
  5. set(PNG_INCLUDE_DIRS ${INCLUDES_BASE_DIR}/png)
  6. set(VORBIS_INCLUDE_DIR ${INCLUDES_BASE_DIR}/vorbis)
  7. if(CMAKE_SIZEOF_VOID_P EQUAL 8)
  8. set(TurboJPEG_INCLUDE_DIRS ${INCLUDES_BASE_DIR}/turbojpeg ${INCLUDES_BASE_DIR}/turbojpeg/x64)
  9. find_library(TurboJPEG_LIBRARIES simd PATHS ${INCLUDES_BASE_DIR}/turbojpeg/x64)
  10. else()
  11. set(TurboJPEG_INCLUDE_DIRS ${INCLUDES_BASE_DIR}/turbojpeg ${INCLUDES_BASE_DIR}/turbojpeg/x86)
  12. find_library(TurboJPEG_LIBRARIES simd PATHS ${INCLUDES_BASE_DIR}/turbojpeg/x86)
  13. endif()
  14. add_library(fmt.hdll SHARED
  15. ${INCLUDES_BASE_DIR}/png/png.c
  16. ${INCLUDES_BASE_DIR}/png/pngerror.c
  17. ${INCLUDES_BASE_DIR}/png/pngget.c
  18. ${INCLUDES_BASE_DIR}/png/pngmem.c
  19. ${INCLUDES_BASE_DIR}/png/pngpread.c
  20. ${INCLUDES_BASE_DIR}/png/pngread.c
  21. ${INCLUDES_BASE_DIR}/png/pngrio.c
  22. ${INCLUDES_BASE_DIR}/png/pngrtran.c
  23. ${INCLUDES_BASE_DIR}/png/pngrutil.c
  24. ${INCLUDES_BASE_DIR}/png/pngset.c
  25. ${INCLUDES_BASE_DIR}/png/pngtrans.c
  26. ${INCLUDES_BASE_DIR}/png/pngwio.c
  27. ${INCLUDES_BASE_DIR}/png/pngwrite.c
  28. ${INCLUDES_BASE_DIR}/png/pngwtran.c
  29. ${INCLUDES_BASE_DIR}/png/pngwutil.c
  30. ${INCLUDES_BASE_DIR}/turbojpeg/jaricom.c
  31. ${INCLUDES_BASE_DIR}/turbojpeg/jcapimin.c
  32. ${INCLUDES_BASE_DIR}/turbojpeg/jcapistd.c
  33. ${INCLUDES_BASE_DIR}/turbojpeg/jcarith.c
  34. ${INCLUDES_BASE_DIR}/turbojpeg/jccoefct.c
  35. ${INCLUDES_BASE_DIR}/turbojpeg/jccolor.c
  36. ${INCLUDES_BASE_DIR}/turbojpeg/jcdctmgr.c
  37. ${INCLUDES_BASE_DIR}/turbojpeg/jchuff.c
  38. ${INCLUDES_BASE_DIR}/turbojpeg/jcinit.c
  39. ${INCLUDES_BASE_DIR}/turbojpeg/jcmainct.c
  40. ${INCLUDES_BASE_DIR}/turbojpeg/jcmarker.c
  41. ${INCLUDES_BASE_DIR}/turbojpeg/jcmaster.c
  42. ${INCLUDES_BASE_DIR}/turbojpeg/jcomapi.c
  43. ${INCLUDES_BASE_DIR}/turbojpeg/jcparam.c
  44. ${INCLUDES_BASE_DIR}/turbojpeg/jcphuff.c
  45. ${INCLUDES_BASE_DIR}/turbojpeg/jcprepct.c
  46. ${INCLUDES_BASE_DIR}/turbojpeg/jcsample.c
  47. ${INCLUDES_BASE_DIR}/turbojpeg/jctrans.c
  48. ${INCLUDES_BASE_DIR}/turbojpeg/jdapimin.c
  49. ${INCLUDES_BASE_DIR}/turbojpeg/jdapistd.c
  50. ${INCLUDES_BASE_DIR}/turbojpeg/jdarith.c
  51. ${INCLUDES_BASE_DIR}/turbojpeg/jdatadst-tj.c
  52. ${INCLUDES_BASE_DIR}/turbojpeg/jdatadst.c
  53. ${INCLUDES_BASE_DIR}/turbojpeg/jdatasrc-tj.c
  54. ${INCLUDES_BASE_DIR}/turbojpeg/jdatasrc.c
  55. ${INCLUDES_BASE_DIR}/turbojpeg/jdcoefct.c
  56. ${INCLUDES_BASE_DIR}/turbojpeg/jdcolor.c
  57. ${INCLUDES_BASE_DIR}/turbojpeg/jddctmgr.c
  58. ${INCLUDES_BASE_DIR}/turbojpeg/jdhuff.c
  59. ${INCLUDES_BASE_DIR}/turbojpeg/jdinput.c
  60. ${INCLUDES_BASE_DIR}/turbojpeg/jdmainct.c
  61. ${INCLUDES_BASE_DIR}/turbojpeg/jdmarker.c
  62. ${INCLUDES_BASE_DIR}/turbojpeg/jdmaster.c
  63. ${INCLUDES_BASE_DIR}/turbojpeg/jdmerge.c
  64. ${INCLUDES_BASE_DIR}/turbojpeg/jdphuff.c
  65. ${INCLUDES_BASE_DIR}/turbojpeg/jdpostct.c
  66. ${INCLUDES_BASE_DIR}/turbojpeg/jdsample.c
  67. ${INCLUDES_BASE_DIR}/turbojpeg/jdtrans.c
  68. ${INCLUDES_BASE_DIR}/turbojpeg/jerror.c
  69. ${INCLUDES_BASE_DIR}/turbojpeg/jfdctflt.c
  70. ${INCLUDES_BASE_DIR}/turbojpeg/jfdctfst.c
  71. ${INCLUDES_BASE_DIR}/turbojpeg/jfdctint.c
  72. ${INCLUDES_BASE_DIR}/turbojpeg/jidctflt.c
  73. ${INCLUDES_BASE_DIR}/turbojpeg/jidctfst.c
  74. ${INCLUDES_BASE_DIR}/turbojpeg/jidctint.c
  75. ${INCLUDES_BASE_DIR}/turbojpeg/jidctred.c
  76. ${INCLUDES_BASE_DIR}/turbojpeg/jmemmgr.c
  77. ${INCLUDES_BASE_DIR}/turbojpeg/jmemnobs.c
  78. ${INCLUDES_BASE_DIR}/turbojpeg/jquant1.c
  79. ${INCLUDES_BASE_DIR}/turbojpeg/jquant2.c
  80. ${INCLUDES_BASE_DIR}/turbojpeg/jsimd.c
  81. ${INCLUDES_BASE_DIR}/turbojpeg/jutils.c
  82. ${INCLUDES_BASE_DIR}/turbojpeg/transupp.c
  83. ${INCLUDES_BASE_DIR}/turbojpeg/turbojpeg.c
  84. ${INCLUDES_BASE_DIR}/zlib/adler32.c
  85. ${INCLUDES_BASE_DIR}/zlib/crc32.c
  86. ${INCLUDES_BASE_DIR}/zlib/deflate.c
  87. ${INCLUDES_BASE_DIR}/zlib/inffast.c
  88. ${INCLUDES_BASE_DIR}/zlib/inflate.c
  89. ${INCLUDES_BASE_DIR}/zlib/inftrees.c
  90. ${INCLUDES_BASE_DIR}/zlib/trees.c
  91. ${INCLUDES_BASE_DIR}/zlib/zutil.c
  92. ${INCLUDES_BASE_DIR}/vorbis/bitrate.c
  93. ${INCLUDES_BASE_DIR}/vorbis/bitwise.c
  94. ${INCLUDES_BASE_DIR}/vorbis/block.c
  95. ${INCLUDES_BASE_DIR}/vorbis/codebook.c
  96. ${INCLUDES_BASE_DIR}/vorbis/envelope.c
  97. ${INCLUDES_BASE_DIR}/vorbis/floor0.c
  98. ${INCLUDES_BASE_DIR}/vorbis/floor1.c
  99. ${INCLUDES_BASE_DIR}/vorbis/framing.c
  100. ${INCLUDES_BASE_DIR}/vorbis/info.c
  101. ${INCLUDES_BASE_DIR}/vorbis/lookup.c
  102. ${INCLUDES_BASE_DIR}/vorbis/lpc.c
  103. ${INCLUDES_BASE_DIR}/vorbis/lsp.c
  104. ${INCLUDES_BASE_DIR}/vorbis/mapping0.c
  105. ${INCLUDES_BASE_DIR}/vorbis/mdct.c
  106. ${INCLUDES_BASE_DIR}/vorbis/psy.c
  107. ${INCLUDES_BASE_DIR}/vorbis/registry.c
  108. ${INCLUDES_BASE_DIR}/vorbis/res0.c
  109. ${INCLUDES_BASE_DIR}/vorbis/sharedbook.c
  110. ${INCLUDES_BASE_DIR}/vorbis/smallft.c
  111. ${INCLUDES_BASE_DIR}/vorbis/synthesis.c
  112. ${INCLUDES_BASE_DIR}/vorbis/vorbisfile.c
  113. ${INCLUDES_BASE_DIR}/vorbis/window.c
  114. fmt.c
  115. sha1.c
  116. dxt.c
  117. mikkt.c
  118. ${MIKKTSPACE_INCLUDE_DIR}/mikktspace.c
  119. )
  120. else()
  121. find_package(ZLIB REQUIRED)
  122. find_package(PNG REQUIRED)
  123. find_package(TurboJPEG QUIET)
  124. if(NOT TurboJPEG_FOUND)
  125. pkg_check_modules(TurboJPEG REQUIRED libjpeg)
  126. endif()
  127. find_package(OggVorbis QUIET)
  128. if(NOT OGGVORBIS_FOUND)
  129. pkg_check_modules(OGGVORBIS REQUIRED vorbis vorbisenc vorbisfile)
  130. endif()
  131. add_library(fmt.hdll SHARED
  132. fmt.c
  133. sha1.c
  134. dxt.c
  135. mikkt.c
  136. ${MIKKTSPACE_INCLUDE_DIR}/mikktspace.c
  137. )
  138. endif()
  139. set_as_hdll(fmt)
  140. target_include_directories(fmt.hdll
  141. PRIVATE
  142. ${ZLIB_INCLUDE_DIRS}
  143. ${PNG_INCLUDE_DIRS}
  144. ${TurboJPEG_INCLUDE_DIRS}
  145. ${VORBIS_INCLUDE_DIR}
  146. ${MINIMP3_INCLUDE_DIR}
  147. ${MIKKTSPACE_INCLUDE_DIR}
  148. )
  149. target_link_libraries(fmt.hdll
  150. libhl
  151. ${ZLIB_LIBRARIES}
  152. ${PNG_LIBRARIES}
  153. ${TurboJPEG_LIBRARIES}
  154. ${OGGVORBIS_LIBRARIES}
  155. )
  156. target_compile_definitions(fmt.hdll
  157. PRIVATE
  158. ${PNG_DEFINITIONS}
  159. )
  160. install(
  161. TARGETS
  162. fmt.hdll
  163. DESTINATION ${HDLL_DESTINATION}
  164. )