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