Commit | Line | Data |
---|---|---|
72b9787e JB |
1 | set(ASM_DIALECT "_YASM") |
2 | set(CMAKE_ASM${ASM_DIALECT}_SOURCE_FILE_EXTENSIONS asm) | |
3 | ||
4 | if(X64) | |
5 | list(APPEND ASM_FLAGS -DARCH_X86_64=1 -DPIC) | |
6 | if(APPLE) | |
7 | set(ARGS -f macho64 -m amd64 -DPREFIX) | |
8 | elseif(UNIX AND NOT CYGWIN) | |
9 | set(ARGS -f elf64 -m amd64) | |
10 | else() | |
11 | set(ARGS -f win64 -m amd64) | |
12 | endif() | |
13 | else() | |
14 | list(APPEND ASM_FLAGS -DARCH_X86_64=0) | |
15 | if(APPLE) | |
16 | set(ARGS -f macho -DPREFIX) | |
17 | elseif(UNIX AND NOT CYGWIN) | |
18 | set(ARGS -f elf32) | |
19 | else() | |
20 | set(ARGS -f win32 -DPREFIX) | |
21 | endif() | |
22 | endif() | |
23 | ||
24 | if(GCC) | |
25 | list(APPEND ASM_FLAGS -DHAVE_ALIGNED_STACK=1) | |
26 | else() | |
27 | list(APPEND ASM_FLAGS -DHAVE_ALIGNED_STACK=0) | |
28 | endif() | |
29 | ||
30 | if(HIGH_BIT_DEPTH) | |
31 | list(APPEND ASM_FLAGS -DHIGH_BIT_DEPTH=1 -DBIT_DEPTH=10) | |
32 | else() | |
33 | list(APPEND ASM_FLAGS -DHIGH_BIT_DEPTH=0 -DBIT_DEPTH=8) | |
34 | endif() | |
35 | set(YASM_FLAGS ${ARGS} ${ASM_FLAGS} PARENT_SCOPE) | |
36 | string(REPLACE ";" " " CMAKE_ASM_YASM_COMPILER_ARG1 "${ARGS}") | |
37 | ||
38 | # This section exists to override the one in CMakeASMInformation.cmake | |
39 | # (the default Information file). This removes the <FLAGS> | |
40 | # thing so that your C compiler flags that have been set via | |
41 | # set_target_properties don't get passed to yasm and confuse it. | |
42 | if(NOT CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT) | |
43 | string(REPLACE ";" " " STR_ASM_FLAGS "${ASM_FLAGS}") | |
44 | set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT "<CMAKE_ASM${ASM_DIALECT}_COMPILER> ${STR_ASM_FLAGS} -o <OBJECT> <SOURCE>") | |
45 | endif() | |
46 | ||
47 | include(CMakeASMInformation) | |
48 | set(ASM_DIALECT) |