1# 2 MESSAGE(STATUS "Checking for YASM") 3 MESSAGE(STATUS "*****************") 4 FIND_PROGRAM(YASM_YASM yasm) 5 IF(YASM_YASM STREQUAL "<YASM_YASM>-NOTFOUND") 6 MESSAGE(FATAL_ERROR "Yasm Not found. Stopping here.") 7 ENDIF(YASM_YASM STREQUAL "<YASM_YASM>-NOTFOUND") 8 MESSAGE(STATUS "Found as ${YASM_YASM}") 9 10 SET(YASM_YASM "yasm.exe") # newer cmakes do not like to be given absolute paths for that wtf ? 11 #SET(ASM_DIALECT "_NASM") 12 13 SET(CMAKE_ASM_SOURCE_FILE_EXTENSIONS nasm;nas;asm) 14 ENABLE_LANGUAGE(ASM_NASM) 15 #SET(CMAKE_ASM_NASM_COMPILER ${YASM_YASM}) 16 SET(ASM_ARGS "") 17 SET(ASM_ARGS_FLAGS -DHAVE_ALIGNED_STACK=1 -DHAVE_CPUNOP=0) 18 SET(ASM_ARGS_FORMAT -f win64 -m amd64 -DARCH_X86_64=1 -DARCH_X86_32=0) 19 20 IF(AVIDEMUX_THIS_IS_CORE) 21 SET(NASM_MACRO_FOLDER ${AVIDEMUX_TOP_SOURCE_DIR}/avidemux_core/ADM_core/include) 22 ELSE(AVIDEMUX_THIS_IS_CORE) 23 SET(NASM_MACRO_FOLDER ${ADM_HEADER_DIR}/ADM_core/) 24 ENDIF(AVIDEMUX_THIS_IS_CORE) 25 26 27 28 #SET(CMAKE_ASM_NASM_FLAGS ${ASM_ARGS_FORMAT} ${ASM_ARGS_FLAGS} -I${NASM_MACRO_FOLDER} ) 29 #INCLUDE(CMakeASMInformation) 30 #SET( CMAKE_ASM_NASM_COMPILE_OBJECT "<CMAKE_ASM_NASM_COMPILER> ${CMAKE_ASM_NASM_FLAGS} -o <OBJECT> <SOURCE>" CACHE INTERNAL "") 31 32 33 34 35MACRO(YASMIFY out ) 36 MESSAGE(STATUS "YASMIFY : ${filez}") 37 foreach(fl ${ARGN}) 38 MESSAGE(STATUS " ${CMAKE_CURRENT_SOURCE_DIR}/${fl}.asm ==> ${CMAKE_CURRENT_BINARY_DIR}/${fl}.obj") 39 add_custom_command( 40 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${fl}.obj 41 COMMAND ${CMAKE_COMMAND} -E echo ${YASM_YASM} ARGS ${ASM_ARGS_FORMAT} ${ASM_ARGS_FLAGS} -I${NASM_MACRO_FOLDER} -o ${CMAKE_CURRENT_BINARY_DIR}/${fl}.obj ${CMAKE_CURRENT_SOURCE_DIR}/${fl}.asm 42 COMMAND ${YASM_YASM} ARGS ${ASM_ARGS_FORMAT} ${ASM_ARGS_FLAGS} -I${NASM_MACRO_FOLDER} -o ${CMAKE_CURRENT_BINARY_DIR}/${fl}.obj ${CMAKE_CURRENT_SOURCE_DIR}/${fl}.asm 43 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${fl}.asm) 44 LIST( APPEND ${out} ${CMAKE_CURRENT_BINARY_DIR}/${fl}.obj) 45 endforeach(fl ${ARGN}) 46 MESSAGE(STATUS "ASM files : ${${out}}") 47ENDMACRO(YASMIFY out ) 48 49 50# 51# 52#get_cmake_property(_variableNames VARIABLES) 53#foreach (_variableName ${_variableNames}) 54 #message(STATUS "${_variableName}=${${_variableName}}") 55#endforeach() 56 57