2015-01-28 05:46:39 +00:00
|
|
|
# Declare SDL2 interface sources
|
|
|
|
|
2022-10-11 03:20:59 +00:00
|
|
|
target_sources(SRB2SDL2 PRIVATE mixer_sound.c)
|
2015-01-28 05:46:39 +00:00
|
|
|
|
2021-05-05 10:56:57 +00:00
|
|
|
target_sourcefile(c)
|
2015-01-28 05:46:39 +00:00
|
|
|
|
2021-05-05 10:56:57 +00:00
|
|
|
target_sources(SRB2SDL2 PRIVATE ogl_sdl.c)
|
2015-01-28 05:46:39 +00:00
|
|
|
|
2022-10-11 03:20:59 +00:00
|
|
|
target_sources(SRB2SDL2 PRIVATE i_threads.c)
|
2020-10-20 20:44:01 +00:00
|
|
|
|
2022-10-11 03:20:59 +00:00
|
|
|
if(${SRB2_USEASM})
|
|
|
|
set_source_files_properties(${SRB2_ASM_SOURCES} PROPERTIES LANGUAGE C)
|
|
|
|
set_source_files_properties(${SRB2_ASM_SOURCES} PROPERTIES COMPILE_FLAGS "-x assembler-with-cpp")
|
2016-09-25 19:33:07 +00:00
|
|
|
endif()
|
2015-01-28 05:46:39 +00:00
|
|
|
|
2022-10-11 03:20:59 +00:00
|
|
|
if("${CMAKE_SYSTEM_NAME}" MATCHES Windows)
|
|
|
|
target_sources(SRB2SDL2 PRIVATE
|
|
|
|
../win32/win_dbg.c
|
|
|
|
../win32/Srb2win.rc)
|
|
|
|
endif()
|
2015-01-28 05:46:39 +00:00
|
|
|
|
2022-10-11 03:20:59 +00:00
|
|
|
if("${CMAKE_SYSTEM_NAME}" MATCHES Darwin)
|
|
|
|
set(MACOSX_BUNDLE_ICON_FILE Srb2mac.icns)
|
|
|
|
set_source_files_properties(macosx/Srb2mac.icns PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
|
|
|
|
target_sources(SRB2SDL2 PRIVATE
|
|
|
|
macosx/mac_alert.c
|
|
|
|
macosx/mac_alert.h
|
|
|
|
macosx/mac_resources.c
|
|
|
|
macosx/mac_resources.h
|
|
|
|
macosx/Srb2mac.icns
|
|
|
|
)
|
|
|
|
endif()
|
2015-01-28 05:46:39 +00:00
|
|
|
|
2022-10-11 03:20:59 +00:00
|
|
|
if("${CMAKE_SYSTEM_NAME}" MATCHES Windows)
|
|
|
|
set_target_properties(SRB2SDL2 PROPERTIES OUTPUT_NAME srb2win)
|
|
|
|
elseif("${CMAKE_SYSTEM_NAME}" MATCHES Linux)
|
|
|
|
set_target_properties(SRB2SDL2 PROPERTIES OUTPUT_NAME lsdlsrb2)
|
|
|
|
else()
|
|
|
|
set_target_properties(SRB2SDL2 PROPERTIES OUTPUT_NAME srb2)
|
|
|
|
endif()
|
2015-03-08 08:26:54 +00:00
|
|
|
|
2022-10-11 03:20:59 +00:00
|
|
|
if("${CMAKE_SYSTEM_NAME}" MATCHES Darwin)
|
|
|
|
find_library(CORE_FOUNDATION_LIBRARY "CoreFoundation")
|
|
|
|
target_link_libraries(SRB2SDL2 PRIVATE
|
|
|
|
${CORE_FOUNDATION_LIBRARY}
|
|
|
|
)
|
2022-07-15 04:57:53 +00:00
|
|
|
|
2022-10-11 03:20:59 +00:00
|
|
|
set_target_properties(SRB2SDL2 PROPERTIES OUTPUT_NAME "${CPACK_PACKAGE_DESCRIPTION_SUMMARY}")
|
2022-07-15 04:57:53 +00:00
|
|
|
|
2022-10-11 03:20:59 +00:00
|
|
|
# Configure the app bundle icon and plist properties
|
|
|
|
target_sources(SRB2SDL2 PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/macosx/Srb2mac.icns")
|
|
|
|
set_target_properties(SRB2SDL2 PROPERTIES
|
|
|
|
MACOSX_BUNDLE_ICON_FILE "Srb2mac"
|
|
|
|
MACOSX_BUNDLE_BUNDLE_NAME "Sonic Robo Blast 2"
|
|
|
|
MACOSX_BUNDLE_BUNDLE_VERSION ${SRB2_VERSION}
|
2022-07-14 23:33:40 +00:00
|
|
|
|
2022-10-11 03:20:59 +00:00
|
|
|
RESOURCE "${CMAKE_CURRENT_SOURCE_DIR}/macosx/Srb2mac.icns"
|
2022-07-14 23:33:40 +00:00
|
|
|
)
|
2022-10-11 03:20:59 +00:00
|
|
|
endif()
|
2022-07-14 23:33:40 +00:00
|
|
|
|
2022-10-11 03:20:59 +00:00
|
|
|
if(NOT "${SRB2_CONFIG_SYSTEM_LIBRARIES}" AND NOT "${SRB2_CONFIG_SHARED_INTERNAL_LIBRARIES}")
|
|
|
|
target_link_libraries(SRB2SDL2 PRIVATE SDL2::SDL2-static SDL2_mixer::SDL2_mixer-static)
|
|
|
|
else()
|
|
|
|
target_link_libraries(SRB2SDL2 PRIVATE SDL2::SDL2 SDL2_mixer::SDL2_mixer)
|
|
|
|
endif()
|
2015-03-08 08:26:54 +00:00
|
|
|
|
2022-10-11 03:20:59 +00:00
|
|
|
if("${CMAKE_SYSTEM_NAME}" MATCHES Linux)
|
|
|
|
target_link_libraries(SRB2SDL2 PRIVATE m rt)
|
|
|
|
endif()
|
2015-02-02 03:25:02 +00:00
|
|
|
|
2022-10-11 03:20:59 +00:00
|
|
|
if(${SRB2_USEASM})
|
|
|
|
if(${SRB2_CONFIG_YASM})
|
|
|
|
set(ASM_ASSEMBLER_TEMP ${CMAKE_ASM_YASM_COMPILER})
|
|
|
|
set(ASM_ASSEMBLER_OBJFORMAT ${CMAKE_ASM_YASM_OBJECT_FORMAT})
|
|
|
|
set_source_files_properties(${SRB2_NASM_SOURCES} LANGUAGE ASM_YASM)
|
|
|
|
else()
|
|
|
|
set(ASM_ASSEMBLER_TEMP ${CMAKE_ASM_NASM_COMPILER})
|
|
|
|
set(ASM_ASSEMBLER_OBJFORMAT ${CMAKE_ASM_NASM_OBJECT_FORMAT})
|
|
|
|
set_source_files_properties(${SRB2_NASM_SOURCES} LANGUAGE ASM_NASM)
|
2015-01-28 05:46:39 +00:00
|
|
|
endif()
|
2022-10-11 03:20:59 +00:00
|
|
|
endif()
|
2015-01-28 05:46:39 +00:00
|
|
|
|
2022-10-11 03:20:59 +00:00
|
|
|
if("${CMAKE_SYSTEM_NAME}" MATCHES Windows)
|
|
|
|
target_link_libraries(SRB2SDL2 PRIVATE
|
|
|
|
ws2_32
|
|
|
|
)
|
|
|
|
target_compile_options(SRB2SDL2 PRIVATE
|
|
|
|
-U_WINDOWS
|
2015-01-28 05:46:39 +00:00
|
|
|
)
|
2022-10-11 03:20:59 +00:00
|
|
|
endif()
|
2015-01-28 05:46:39 +00:00
|
|
|
|
2022-10-11 03:20:59 +00:00
|
|
|
target_compile_definitions(SRB2SDL2 PRIVATE -DHAVE_MIXER -DSOUND=SOUND_MIXER)
|
|
|
|
target_compile_definitions(SRB2SDL2 PRIVATE -DDIRECTFULLSCREEN -DHAVE_SDL)
|
2015-01-28 07:20:43 +00:00
|
|
|
|
2022-10-11 03:20:59 +00:00
|
|
|
#### Installation ####
|
|
|
|
if("${CMAKE_SYSTEM_NAME}" MATCHES Darwin)
|
|
|
|
install(TARGETS SRB2SDL2
|
|
|
|
BUNDLE DESTINATION .
|
2015-01-28 05:46:39 +00:00
|
|
|
)
|
2022-10-11 03:20:59 +00:00
|
|
|
set_property(TARGET SRB2SDL2 PROPERTY INSTALL_RPATH_USE_LINK_PATH ON)
|
|
|
|
else()
|
|
|
|
install(TARGETS SRB2SDL2 SRB2SDL2
|
|
|
|
RUNTIME DESTINATION .
|
|
|
|
)
|
|
|
|
if ((${CMAKE_BUILD_TYPE} MATCHES Debug) OR (${CMAKE_BUILD_TYPE} MATCHES RelWithDebInfo))
|
|
|
|
set(SRB2_DEBUG_INSTALL OFF CACHE BOOL "Insert *.debug file into the install directory or package.")
|
|
|
|
if (${SRB2_DEBUG_INSTALL})
|
|
|
|
install(FILES $<TARGET_FILE:SRB2SDL2>.debug
|
|
|
|
DESTINATION .
|
|
|
|
OPTIONAL
|
2015-02-02 04:14:52 +00:00
|
|
|
)
|
|
|
|
endif()
|
|
|
|
endif()
|
2022-10-11 03:20:59 +00:00
|
|
|
endif()
|
2015-02-02 04:14:52 +00:00
|
|
|
|
2022-10-11 03:20:59 +00:00
|
|
|
# Mac bundle fixup
|
|
|
|
# HACK: THIS IS IMPORTANT! See the escaped \${CMAKE_INSTALL_PREFIX}? This
|
|
|
|
# makes it so that var is evaluated LATER during cpack, not right now!
|
|
|
|
# This fixes the quirk where the bundled libraries don't land in the final package
|
|
|
|
# https://cmake.org/pipermail/cmake/2011-March/043532.html
|
|
|
|
#
|
|
|
|
# HOWEVER: ${CPACK_PACKAGE_DESCRIPTION_SUMMARY} is NOT escaped, because that var
|
|
|
|
# is only available to us at this step. Read the link: ${CMAKE_INSTALL_PREFIX} at
|
|
|
|
# this current step points to the CMAKE build folder, NOT the folder that CPACK uses.
|
|
|
|
# Therefore, it makes sense to escape that var, but not the other.
|
|
|
|
if("${CMAKE_SYSTEM_NAME}" MATCHES Darwin)
|
|
|
|
install(CODE "
|
|
|
|
include(BundleUtilities)
|
|
|
|
fixup_bundle(\"\${CMAKE_INSTALL_PREFIX}/${CPACK_PACKAGE_DESCRIPTION_SUMMARY}.app\"
|
|
|
|
\"\"
|
|
|
|
/Library/Frameworks
|
|
|
|
)"
|
|
|
|
)
|
2016-02-06 02:49:24 +00:00
|
|
|
endif()
|
2022-10-11 03:20:59 +00:00
|
|
|
|
|
|
|
set(SRB2_SDL2_AVAILABLE YES PARENT_SCOPE)
|