Imported Upstream version 1.4
[deb_x265.git] / source / cmake / CMakeASM_YASMInformation.cmake
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)