vgmstream/src/CMakeLists.txt

78 lines
2.5 KiB
CMake
Raw Normal View History

file(GLOB CODING_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/coding/*.h")
file(GLOB CODING_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/coding/*.c")
file(GLOB LAYOUT_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/layout/*.h")
file(GLOB LAYOUT_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/layout/*.c")
file(GLOB META_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/meta/*.h")
file(GLOB META_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/meta/*.c")
2021-08-26 22:37:34 +02:00
file(GLOB UTIL_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/util/*.h")
file(GLOB UTIL_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/util/*.c")
set(EXT_HEADERS
2020-01-11 17:34:51 +01:00
${VGM_SOURCE_DIR}/ext_includes/pstdint.h)
file(GLOB MAIN_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/*.h")
file(GLOB MAIN_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.c")
# stack_allow.h is not being used, so no need to include it in the sources
list(REMOVE_ITEM MAIN_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/stack_alloc.h)
# Setup source groups, mainly for Visual Studio
source_group("Header Files\\coding" FILES ${CODING_HEADERS})
source_group("Header Files\\layout" FILES ${LAYOUT_HEADERS})
source_group("Header Files\\meta" FILES ${META_HEADERS})
source_group("Header Files\\util" FILES ${UTIL_HEADERS})
source_group("Header Files\\ext" FILES ${EXT_HEADERS})
source_group("Source Files\\coding" FILES ${CODING_SOURCES})
source_group("Source Files\\layout" FILES ${LAYOUT_SOURCES})
source_group("Source Files\\meta" FILES ${META_SOURCES})
source_group("Source Files\\util" FILES ${UTIL_SOURCES})
set(libvgmstream_sources
${CODING_HEADERS}
${CODING_SOURCES}
${LAYOUT_HEADERS}
${LAYOUT_SOURCES}
${META_HEADERS}
${META_SOURCES}
${UTIL_HEADERS}
${UTIL_SOURCES}
${EXT_HEADERS}
${MAIN_HEADERS}
${MAIN_SOURCES}
)
# Set up the proper include directories
set(libvgmstream_includes
${VGM_SOURCE_DIR}/ext_includes
coding
layout
meta
util
)
# libvgmstream.a
add_library(libvgmstream STATIC ${libvgmstream_sources})
set_target_properties(libvgmstream PROPERTIES PREFIX "")
if(USE_FFMPEG AND FFMPEG_COMPILE)
add_dependencies(libvgmstream avcodec)
endif()
setup_target(libvgmstream)
target_include_directories(libvgmstream PRIVATE ${libvgmstream_includes})
# libvgmstream.so
if(NOT EMSCRIPTEN)
add_library(libvgmstream_shared SHARED EXCLUDE_FROM_ALL ${libvgmstream_sources})
set_target_properties(libvgmstream_shared PROPERTIES
PREFIX ""
OUTPUT_NAME "libvgmstream"
)
if(USE_FFMPEG AND FFMPEG_COMPILE)
add_dependencies(libvgmstream_shared avcodec)
endif()
setup_target(libvgmstream_shared TRUE)
target_include_directories(libvgmstream_shared PRIVATE ${libvgmstream_includes})
endif()