-
Notifications
You must be signed in to change notification settings - Fork 23
/
Copy pathCMakeLists.txt
69 lines (61 loc) · 1.5 KB
/
CMakeLists.txt
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
69
cmake_minimum_required(VERSION 3.13)
project(mp4)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fpermissive")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lpthread")
add_executable(mp4
src/mp4.cpp
)
target_include_directories(mp4 PRIVATE
"src/minimp4"
)
if(EMSCRIPTEN)
set(CMAKE_CXX_FLAGS "\
${CMAKE_CXX_FLAGS}\
-s ALLOW_MEMORY_GROWTH=1\
-s DISABLE_EXCEPTION_CATCHING=1\
-s WASM=1\
-s IGNORE_MISSING_MAIN\
-s TEXTDECODER=0\
-s MODULARIZE=1\
-s FILESYSTEM=0\
-s ASSERTIONS=0\
-Wno-invalid-source-encoding\
-Wno-tautological-pointer-compare\
--pre-js ../src/pre.js\
--extern-post-js ../src/extern-post.js\
-O3\
--closure 0\
-g0\
--bind\
")
target_compile_options(mp4
PRIVATE $<$<COMPILE_LANGUAGE:CXX>:-fno-exceptions>
)
option(WEB "Use Web Env" OFF)
if (WEB)
set(CMAKE_CXX_FLAGS "\
${CMAKE_CXX_FLAGS}\
-s EXPORT_ES6=1\
-s ENVIRONMENT=web,worker\
")
set_target_properties(
mp4
PROPERTIES
SUFFIX ".js"
)
else ()
set(CMAKE_CXX_FLAGS "\
${CMAKE_CXX_FLAGS}\
-s EXPORT_ES6=0\
-s ENVIRONMENT=node\
")
set_target_properties(
mp4
PROPERTIES
SUFFIX ".node.js"
)
endif(WEB)
unset(WEB CACHE)
endif()