1set(ASM_DIALECT "_NASM") 2set(CMAKE_ASM${ASM_DIALECT}_SOURCE_FILE_EXTENSIONS asm) 3 4if(X64) 5 list(APPEND ASM_FLAGS -DARCH_X86_64=1 -I ${CMAKE_CURRENT_SOURCE_DIR}/../common/x86/) 6 if(ENABLE_PIC) 7 list(APPEND ASM_FLAGS -DPIC) 8 endif() 9 if(APPLE) 10 set(ARGS -f macho64 -DPREFIX) 11 elseif(UNIX AND NOT CYGWIN) 12 set(ARGS -f elf64) 13 else() 14 set(ARGS -f win64) 15 endif() 16else() 17 list(APPEND ASM_FLAGS -DARCH_X86_64=0 -I ${CMAKE_CURRENT_SOURCE_DIR}/../common/x86/) 18 if(APPLE) 19 set(ARGS -f macho32 -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_NASM_FLAGS}") 44 45if(CMAKE_BUILD_TYPE MATCHES Release) 46 list(APPEND ASM_FLAGS "${CMAKE_ASM_NASM_FLAGS_RELEASE}") 47elseif(CMAKE_BUILD_TYPE MATCHES Debug) 48 list(APPEND ASM_FLAGS "${CMAKE_ASM_NASM_FLAGS_DEBUG}") 49elseif(CMAKE_BUILD_TYPE MATCHES MinSizeRel) 50 list(APPEND ASM_FLAGS "${CMAKE_ASM_NASM_FLAGS_MINSIZEREL}") 51elseif(CMAKE_BUILD_TYPE MATCHES RelWithDebInfo) 52 list(APPEND ASM_FLAGS "${CMAKE_ASM_NASM_FLAGS_RELWITHDEBINFO}") 53endif() 54 55set(NASM_FLAGS ${ARGS} ${ASM_FLAGS} PARENT_SCOPE) 56string(REPLACE ";" " " CMAKE_ASM_NASM_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 nasm 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