File: CMakeLists.txt

package info (click to toggle)
basis-universal 2.0.2-3
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 216,436 kB
  • sloc: cpp: 163,224; ansic: 51,368; python: 2,824; javascript: 2,637; lisp: 1,026; sh: 161; makefile: 17
file content (68 lines) | stat: -rw-r--r-- 2,146 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
cmake_minimum_required(VERSION 3.5)

project(basisu_transcoder_js)

# KTX2 support (and Zstandard) in the transcoder is purely optional. Use "cmake -DKTX2=FALSE" to completely disable KTX2 support (which also disables Zstandard).
# If this is FALSE you'll only be able to transcode .basis files.
option(KTX2 "KTX2" TRUE)

# If KTX2 is enabled, Zstandard is needed to support decompressing supercompressed UASTC files.
# If you know you'll never be transcoding KTX2 files using this feature you can set KTX2_ZSTANDARD to 0.
option(KTX2_ZSTANDARD "KTX2_ZSTANDARD" TRUE)

message("KTX2=${KTX2}")
message("KTX2_ZSTANDARD=${KTX2_ZSTANDARD}")

if (EMSCRIPTEN)
  set(CMAKE_CXX_STANDARD 17)

  set(SRC_LIST
  	../../transcoder/basisu_transcoder.cpp
	basis_wrappers.cpp
  )

  if (KTX2)
	set(KTX2_DEFINITION BASISD_SUPPORT_KTX2=1)
  else()
  	set(KTX2_DEFINITION BASISD_SUPPORT_KTX2=0)
  endif()

  if (KTX2_ZSTANDARD)
 	set(SRC_LIST ${SRC_LIST}
		../../zstd/zstddeclib.c
	)
	set(ZSTD_DEFINITION BASISD_SUPPORT_KTX2_ZSTD=1)
  else()
  	set(ZSTD_DEFINITION BASISD_SUPPORT_KTX2_ZSTD=0)
  endif()

#  message("KTX2_DEFINITION=${KTX2_DEFINITION})
#  message("ZSTD_DEFINITION=${ZSTD_DEFINITION})

  add_executable(basis_transcoder.js ${SRC_LIST})

  target_compile_definitions(basis_transcoder.js PRIVATE NDEBUG
  	BASISD_SUPPORT_UASTC_HDR=1
	BASISD_SUPPORT_UASTC=1
	BASISD_SUPPORT_BC7=1
	BASISD_SUPPORT_ATC=0
	BASISD_SUPPORT_ASTC_HIGHER_OPAQUE_QUALITY=0
	BASISD_SUPPORT_PVRTC2=0
	BASISD_SUPPORT_FXT1=0
	BASISD_SUPPORT_ETC2_EAC_RG11=0
	BASISU_SUPPORT_ENCODING=0
	BASISD_ENABLE_DEBUG_FLAGS=1
	${KTX2_DEFINITION}
	${ZSTD_DEFINITION}
  )

  target_compile_options(basis_transcoder.js PRIVATE -O3 -fno-strict-aliasing)
  #target_compile_options(basis_transcoder.js PRIVATE -O0 -g -fno-strict-aliasing)

  target_include_directories(basis_transcoder.js PRIVATE ../../transcoder)

  set_target_properties(basis_transcoder.js PROPERTIES
      OUTPUT_NAME "basis_transcoder"
      SUFFIX ".js"
      LINK_FLAGS "--bind -s ALLOW_MEMORY_GROWTH=1 -O3 -s MALLOC=emmalloc -s MODULARIZE=1 -s EXPORT_NAME=BASIS -s ASSERTIONS=0 -s EXPORTED_RUNTIME_METHODS=['HEAP8']")
endif()