set(NASM "nasm")

if(WIN32)
    if(64BIT)
        set(ASMFLAGS -O3 -f win64 -DWIN64 -D__x86_64__ -DPIC -I${CMAKE_CURRENT_SOURCE_DIR}/)
        message("Building 64bit")
    else()
        set(ASMFLAGS -O3 -f win32 -DWIN32 -I${CMAKE_CURRENT_SOURCE_DIR}/)
    endif()
else()
    if(64BIT)
        set(ASMFLAGS -O3 -f elf64 -DELF -D__x86_64__ -DPIC -I${CMAKE_CURRENT_SOURCE_DIR}/)
    else()
        set(ASMFLAGS -O3 -f elf32 -DELF -I${CMAKE_CURRENT_SOURCE_DIR}/)
    endif()
endif()

if(64BIT)
    set(JPEG_SIMD_SOURCES       jfsseflt-64 jccolss2-64 jdcolss2-64 jcgrass2-64
        jcsamss2-64 jdsamss2-64 jdmerss2-64 jcqnts2i-64 jfss2fst-64 jfss2int-64
        jiss2red-64 jiss2int-64 jiss2fst-64 jcqnts2f-64 jiss2flt-64)
else()
    set(JPEG_SIMD_SOURCES jsimdcpu jccolmmx jcgrammx jdcolmmx jcsammmx jdsammmx
        jdmermmx jcqntmmx jfmmxfst jfmmxint jimmxred jimmxint jimmxfst jcqnt3dn
        jf3dnflt ji3dnflt jcqntsse jfsseflt jisseflt jccolss2 jcgrass2 jdcolss2
        jcsamss2 jdsamss2 jdmerss2 jcqnts2i jfss2fst jfss2int jiss2red jiss2int
        jiss2fst jcqnts2f jiss2flt)
endif()

foreach(file ${JPEG_SIMD_SOURCES})
  set(SIMD_SRC ${CMAKE_CURRENT_SOURCE_DIR}/${file}.asm)
  set(SIMD_OBJ ${CMAKE_CURRENT_BINARY_DIR}/${file}.obj)
  add_custom_command(OUTPUT ${SIMD_OBJ} DEPENDS ${SIMD_SRC} *.inc
    COMMAND ${NASM} ${ASMFLAGS} ${SIMD_SRC} -o ${SIMD_OBJ})
  set(SIMD_OBJS ${SIMD_OBJS} ${SIMD_OBJ})
  message("boop: " + ${file})
endforeach()

set(SIMD_OBJS ${SIMD_OBJS} PARENT_SCOPE)
add_custom_target(jpegturbo_simd DEPENDS ${SIMD_OBJS})