1set(ASM_DIALECT "_YASM")
2set(CMAKE_ASM${ASM_DIALECT}_SOURCE_FILE_EXTENSIONS asm)
3
4if(X64)
5    list(APPEND ASM_FLAGS -DARCH_X86_64=1)
6    if(ENABLE_PIC)
7        list(APPEND ASM_FLAGS -DPIC)
8    endif()
9    if(APPLE)
10        set(ARGS -f macho64 -m amd64 -DPREFIX)
11    elseif(UNIX AND NOT CYGWIN)
12        set(ARGS -f elf64 -m amd64)
13    else()
14        set(ARGS -f win64 -m amd64)
15    endif()
16else()
17    list(APPEND ASM_FLAGS -DARCH_X86_64=0)
18    if(APPLE)
19        set(ARGS -f macho -DPREFIX)
20    elseif(UNIX AND NOT CYGWIN)
21        set(ARGS -f elf32)
22    else()
23        set(ARGS -f win32 -DPREFIX)
24    endif()
25endif()
26
27if(GCC)
28    list(APPEND ASM_FLAGS -DHAVE_ALIGNED_STACK=1)
29else()
30    list(APPEND ASM_FLAGS -DHAVE_ALIGNED_STACK=0)
31endif()
32
33if(HIGH_BIT_DEPTH)
34    if(MAIN12)
35        list(APPEND ASM_FLAGS -DHIGH_BIT_DEPTH=1 -DBIT_DEPTH=12 -DX265_NS=${X265_NS})
36    else()
37        list(APPEND ASM_FLAGS -DHIGH_BIT_DEPTH=1 -DBIT_DEPTH=10 -DX265_NS=${X265_NS})
38    endif()
39else()
40    list(APPEND ASM_FLAGS -DHIGH_BIT_DEPTH=0 -DBIT_DEPTH=8 -DX265_NS=${X265_NS})
41endif()
42
43list(APPEND ASM_FLAGS "${CMAKE_ASM_YASM_FLAGS}")
44
45if(CMAKE_BUILD_TYPE MATCHES Release)
46    list(APPEND ASM_FLAGS "${CMAKE_ASM_YASM_FLAGS_RELEASE}")
47elseif(CMAKE_BUILD_TYPE MATCHES Debug)
48    list(APPEND ASM_FLAGS "${CMAKE_ASM_YASM_FLAGS_DEBUG}")
49elseif(CMAKE_BUILD_TYPE MATCHES MinSizeRel)
50    list(APPEND ASM_FLAGS "${CMAKE_ASM_YASM_FLAGS_MINSIZEREL}")
51elseif(CMAKE_BUILD_TYPE MATCHES RelWithDebInfo)
52    list(APPEND ASM_FLAGS "${CMAKE_ASM_YASM_FLAGS_RELWITHDEBINFO}")
53endif()
54
55set(YASM_FLAGS ${ARGS} ${ASM_FLAGS} PARENT_SCOPE)
56string(REPLACE ";" " " CMAKE_ASM_YASM_COMPILER_ARG1 "${ARGS}")
57
58# This section exists to override the one in CMakeASMInformation.cmake
59# (the default Information file). This removes the <FLAGS>
60# thing so that your C compiler flags that have been set via
61# set_target_properties don't get passed to yasm and confuse it.
62if(NOT CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT)
63    string(REPLACE ";" " " STR_ASM_FLAGS "${ASM_FLAGS}")
64    set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT "<CMAKE_ASM${ASM_DIALECT}_COMPILER> ${STR_ASM_FLAGS} -o <OBJECT> <SOURCE>")
65endif()
66
67include(CMakeASMInformation)
68set(ASM_DIALECT)
69