set(MAD_SRC "libmad/bit.c" "libmad/decoder.c" "libmad/fixed.c" "libmad/frame.c" "libmad/huffman.c" "libmad/layer12.c" "libmad/layer3.c" "libmad/stream.c" "libmad/synth.c" "libmad/timer.c" "libmad/version.c") set(MAD_HPP "libmad/bit.h" "libmad/config.h" "libmad/decoder.h" "libmad/fixed.h" "libmad/frame.h" "libmad/global.h" "libmad/huffman.h" "libmad/layer12.h" "libmad/layer3.h" "libmad/mad.h" "libmad/stream.h" "libmad/synth.h" "libmad/timer.h" "libmad/version.h") set(MAD_DAT "libmad/D.dat" "libmad/imdct_s.dat" "libmad/qc_table.dat" "libmad/rq_table.dat" "libmad/sf_table.dat") source_group("Source Files" FILES ${MAD_SRC}) source_group("Header Files" FILES ${MAD_HPP}) source_group("Data Files" FILES ${MAD_DAT}) add_library("mad" STATIC ${MAD_SRC} ${MAD_HPP} ${MAD_DAT}) set_property(TARGET "mad" PROPERTY FOLDER "External Libraries") disable_project_warnings("mad") if(ENDIAN_BIG) set(WORDS_BIGENDIAN 1) endif() target_compile_definitions("mad" PRIVATE $<$:DEBUG>) target_compile_definitions("mad" PRIVATE HAVE_CONFIG_H) if(MSVC) target_compile_definitions("mad" PRIVATE _CRT_SECURE_NO_WARNINGS) # TODO: Remove the need for this check since it's tied to 32-bit builds from # first glance. target_compile_definitions("mad" PRIVATE ASO_ZEROCHECK) target_compile_definitions("mad" PRIVATE $<$:FPM_DEFAULT>) if(SM_WIN32_ARCH MATCHES "x64") target_compile_definitions("mad" PRIVATE $<$:FPM_64BIT>) target_compile_definitions("mad" PRIVATE $<$:FPM_64BIT>) target_compile_definitions("mad" PRIVATE $<$:FPM_64BIT>) else() target_compile_definitions("mad" PRIVATE $<$:FPM_INTEL>) target_compile_definitions("mad" PRIVATE $<$:FPM_INTEL>) target_compile_definitions("mad" PRIVATE $<$:FPM_INTEL>) endif() # TODO: Provide a proper define for inline. target_compile_definitions("mad" PRIVATE inline=__inline) elseif(APPLE OR UNIX) target_compile_definitions("mad" PRIVATE FPM_64BIT=1) endif(MSVC) target_include_directories("mad" PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/libmad") target_include_directories("mad" PUBLIC "libmad") configure_file("config.mad.in.h" "libmad/config.h")