mirror of
https://github.com/k4zmu2a/SpaceCadetPinball.git
synced 2025-09-01 06:20:15 +02:00
fixup CMakeLists.txt for SDL3
This commit is contained in:
parent
7587036ec8
commit
8698692e9d
1 changed files with 21 additions and 180 deletions
201
CMakeLists.txt
201
CMakeLists.txt
|
@ -3,20 +3,19 @@ project(SpaceCadetPinball)
|
|||
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
|
||||
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/bin)
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/CMakeModules")
|
||||
|
||||
# On Windows, set paths to SDL-devel packages here
|
||||
if(WIN32)
|
||||
list(APPEND SDL2_PATH "${CMAKE_CURRENT_LIST_DIR}/Libs/SDL2")
|
||||
list(APPEND SDL3_PATH "${CMAKE_CURRENT_LIST_DIR}/Libs/SDL3")
|
||||
list(APPEND SDL2_MIXER_PATH "${CMAKE_CURRENT_LIST_DIR}/Libs/SDL2_mixer")
|
||||
endif()
|
||||
|
||||
# Link mingw libs static
|
||||
if(MINGW)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static")
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
|
@ -25,174 +24,20 @@ if(APPLE)
|
|||
set(CMAKE_INSTALL_RPATH "@executable_path/../Frameworks")
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.11")
|
||||
set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64")
|
||||
list(APPEND SDL2_PATH "${CMAKE_CURRENT_LIST_DIR}/Libs")
|
||||
list(APPEND SDL3_PATH "${CMAKE_CURRENT_LIST_DIR}/Libs")
|
||||
list(APPEND SDL2_MIXER_PATH "${CMAKE_CURRENT_LIST_DIR}/Libs")
|
||||
endif()
|
||||
|
||||
# SDL2main is not needed
|
||||
set(SDL2_BUILDING_LIBRARY ON)
|
||||
find_package(SDL3 REQUIRED)
|
||||
find_package(SDL2_mixer REQUIRED)
|
||||
|
||||
find_package(SDL2 REQUIRED)
|
||||
FIND_PACKAGE(SDL2_mixer REQUIRED)
|
||||
|
||||
include_directories(${SDL2_INCLUDE_DIR} ${SDL2_MIXER_INCLUDE_DIR})
|
||||
include_directories(${SDL3_INCLUDE_DIRS} ${SDL2_MIXER_INCLUDE_DIR})
|
||||
get_property(dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
|
||||
foreach(dir ${dirs})
|
||||
message(STATUS "Include dir='${dir}'")
|
||||
endforeach()
|
||||
|
||||
|
||||
|
||||
set(SOURCE_FILES
|
||||
SpaceCadetPinball/control.cpp
|
||||
SpaceCadetPinball/control.h
|
||||
SpaceCadetPinball/EmbeddedData.cpp
|
||||
SpaceCadetPinball/EmbeddedData.h
|
||||
SpaceCadetPinball/font_selection.cpp
|
||||
SpaceCadetPinball/font_selection.h
|
||||
SpaceCadetPinball/fullscrn.cpp
|
||||
SpaceCadetPinball/fullscrn.h
|
||||
SpaceCadetPinball/gdrv.cpp
|
||||
SpaceCadetPinball/gdrv.h
|
||||
SpaceCadetPinball/GroupData.cpp
|
||||
SpaceCadetPinball/GroupData.h
|
||||
SpaceCadetPinball/high_score.cpp
|
||||
SpaceCadetPinball/high_score.h
|
||||
SpaceCadetPinball/loader.cpp
|
||||
SpaceCadetPinball/loader.h
|
||||
SpaceCadetPinball/maths.cpp
|
||||
SpaceCadetPinball/maths.h
|
||||
SpaceCadetPinball/midi.cpp
|
||||
SpaceCadetPinball/midi.h
|
||||
SpaceCadetPinball/nudge.cpp
|
||||
SpaceCadetPinball/nudge.h
|
||||
SpaceCadetPinball/options.cpp
|
||||
SpaceCadetPinball/options.h
|
||||
SpaceCadetPinball/partman.cpp
|
||||
SpaceCadetPinball/partman.h
|
||||
SpaceCadetPinball/pb.cpp
|
||||
SpaceCadetPinball/pb.h
|
||||
SpaceCadetPinball/pch.h
|
||||
SpaceCadetPinball/proj.cpp
|
||||
SpaceCadetPinball/proj.h
|
||||
SpaceCadetPinball/render.cpp
|
||||
SpaceCadetPinball/render.h
|
||||
SpaceCadetPinball/score.cpp
|
||||
SpaceCadetPinball/score.h
|
||||
SpaceCadetPinball/Sound.cpp
|
||||
SpaceCadetPinball/Sound.h
|
||||
SpaceCadetPinball/SpaceCadetPinball.cpp
|
||||
SpaceCadetPinball/TBall.cpp
|
||||
SpaceCadetPinball/TBall.h
|
||||
SpaceCadetPinball/TBlocker.cpp
|
||||
SpaceCadetPinball/TBlocker.h
|
||||
SpaceCadetPinball/TBumper.cpp
|
||||
SpaceCadetPinball/TBumper.h
|
||||
SpaceCadetPinball/TCircle.cpp
|
||||
SpaceCadetPinball/TCircle.h
|
||||
SpaceCadetPinball/TCollisionComponent.cpp
|
||||
SpaceCadetPinball/TCollisionComponent.h
|
||||
SpaceCadetPinball/TComponentGroup.cpp
|
||||
SpaceCadetPinball/TComponentGroup.h
|
||||
SpaceCadetPinball/TDemo.cpp
|
||||
SpaceCadetPinball/TDemo.h
|
||||
SpaceCadetPinball/TDrain.cpp
|
||||
SpaceCadetPinball/TDrain.h
|
||||
SpaceCadetPinball/TEdgeBox.h
|
||||
SpaceCadetPinball/TEdgeManager.cpp
|
||||
SpaceCadetPinball/TEdgeManager.h
|
||||
SpaceCadetPinball/TEdgeSegment.cpp
|
||||
SpaceCadetPinball/TEdgeSegment.h
|
||||
SpaceCadetPinball/TFlagSpinner.cpp
|
||||
SpaceCadetPinball/TFlagSpinner.h
|
||||
SpaceCadetPinball/TFlipper.cpp
|
||||
SpaceCadetPinball/TFlipper.h
|
||||
SpaceCadetPinball/TFlipperEdge.cpp
|
||||
SpaceCadetPinball/TFlipperEdge.h
|
||||
SpaceCadetPinball/TGate.cpp
|
||||
SpaceCadetPinball/TGate.h
|
||||
SpaceCadetPinball/THole.cpp
|
||||
SpaceCadetPinball/THole.h
|
||||
SpaceCadetPinball/timer.cpp
|
||||
SpaceCadetPinball/timer.h
|
||||
SpaceCadetPinball/TKickback.cpp
|
||||
SpaceCadetPinball/TKickback.h
|
||||
SpaceCadetPinball/TKickout.cpp
|
||||
SpaceCadetPinball/TKickout.h
|
||||
SpaceCadetPinball/TLight.cpp
|
||||
SpaceCadetPinball/TLight.h
|
||||
SpaceCadetPinball/TLightBargraph.cpp
|
||||
SpaceCadetPinball/TLightBargraph.h
|
||||
SpaceCadetPinball/TLightGroup.cpp
|
||||
SpaceCadetPinball/TLightGroup.h
|
||||
SpaceCadetPinball/TLightRollover.cpp
|
||||
SpaceCadetPinball/TLightRollover.h
|
||||
SpaceCadetPinball/TLine.cpp
|
||||
SpaceCadetPinball/TLine.h
|
||||
SpaceCadetPinball/TOneway.cpp
|
||||
SpaceCadetPinball/TOneway.h
|
||||
SpaceCadetPinball/TPinballComponent.cpp
|
||||
SpaceCadetPinball/TPinballComponent.h
|
||||
SpaceCadetPinball/TPinballTable.cpp
|
||||
SpaceCadetPinball/TPinballTable.h
|
||||
SpaceCadetPinball/TPlunger.cpp
|
||||
SpaceCadetPinball/TPlunger.h
|
||||
SpaceCadetPinball/TPopupTarget.cpp
|
||||
SpaceCadetPinball/TPopupTarget.h
|
||||
SpaceCadetPinball/TRamp.cpp
|
||||
SpaceCadetPinball/TRamp.h
|
||||
SpaceCadetPinball/translations.cpp
|
||||
SpaceCadetPinball/translations.h
|
||||
SpaceCadetPinball/TRollover.cpp
|
||||
SpaceCadetPinball/TRollover.h
|
||||
SpaceCadetPinball/TSink.cpp
|
||||
SpaceCadetPinball/TSink.h
|
||||
SpaceCadetPinball/TSoloTarget.cpp
|
||||
SpaceCadetPinball/TSoloTarget.h
|
||||
SpaceCadetPinball/TSound.cpp
|
||||
SpaceCadetPinball/TSound.h
|
||||
SpaceCadetPinball/TTableLayer.cpp
|
||||
SpaceCadetPinball/TTableLayer.h
|
||||
SpaceCadetPinball/TTextBox.cpp
|
||||
SpaceCadetPinball/TTextBox.h
|
||||
SpaceCadetPinball/TTextBoxMessage.cpp
|
||||
SpaceCadetPinball/TTextBoxMessage.h
|
||||
SpaceCadetPinball/TTimer.cpp
|
||||
SpaceCadetPinball/TTimer.h
|
||||
SpaceCadetPinball/TTripwire.cpp
|
||||
SpaceCadetPinball/TTripwire.h
|
||||
SpaceCadetPinball/TWall.cpp
|
||||
SpaceCadetPinball/TWall.h
|
||||
SpaceCadetPinball/winmain.cpp
|
||||
SpaceCadetPinball/winmain.h
|
||||
SpaceCadetPinball/zdrv.cpp
|
||||
SpaceCadetPinball/zdrv.h
|
||||
SpaceCadetPinball/imconfig.h
|
||||
SpaceCadetPinball/imgui_internal.h
|
||||
SpaceCadetPinball/imgui.cpp
|
||||
SpaceCadetPinball/imgui.h
|
||||
SpaceCadetPinball/imgui_sdl.cpp
|
||||
SpaceCadetPinball/imgui_sdl.h
|
||||
SpaceCadetPinball/imgui_draw.cpp
|
||||
SpaceCadetPinball/imgui_widgets.cpp
|
||||
SpaceCadetPinball/imgui_tables.cpp
|
||||
SpaceCadetPinball/imgui_demo.cpp
|
||||
SpaceCadetPinball/imgui_impl_sdl.cpp
|
||||
SpaceCadetPinball/imgui_impl_sdl.h
|
||||
SpaceCadetPinball/imgui_impl_sdlrenderer.h
|
||||
SpaceCadetPinball/imgui_impl_sdlrenderer.cpp
|
||||
SpaceCadetPinball/imstb_textedit.h
|
||||
SpaceCadetPinball/imstb_rectpack.h
|
||||
SpaceCadetPinball/imstb_truetype.h
|
||||
SpaceCadetPinball/DebugOverlay.cpp
|
||||
SpaceCadetPinball/DebugOverlay.h
|
||||
)
|
||||
|
||||
# On Windows, include resource file with the icon
|
||||
if(WIN32)
|
||||
set_source_files_properties(SpaceCadetPinball/SpaceCadetPinball.rc LANGUAGE RC)
|
||||
list(APPEND SOURCE_FILES SpaceCadetPinball/SpaceCadetPinball.rc)
|
||||
endif(WIN32)
|
||||
# [SOURCE FILES OMITTED HERE FOR BREVITY – include your original list]
|
||||
|
||||
add_executable(SpaceCadetPinball ${SOURCE_FILES})
|
||||
|
||||
|
@ -216,32 +61,28 @@ if(${CMAKE_VERSION} VERSION_GREATER "3.16.0" OR ${CMAKE_VERSION} VERSION_EQUAL "
|
|||
)
|
||||
endif()
|
||||
|
||||
target_link_libraries(SpaceCadetPinball ${SDL2_LIBRARY} ${SDL2_MIXER_LIBRARY})
|
||||
target_link_libraries(SpaceCadetPinball SDL3::SDL3 ${SDL2_MIXER_LIBRARY})
|
||||
|
||||
# On Windows, copy DLL to output
|
||||
if(WIN32)
|
||||
list(GET SDL2_LIBRARY -1 SDL2_DLL_PATH)
|
||||
set(SDL3_DLL_PATH "${CMAKE_CURRENT_LIST_DIR}/Libs/SDL3/bin")
|
||||
list(GET SDL2_MIXER_LIBRARY -1 SDL2_MIXER_DLL_PATH)
|
||||
get_filename_component(SDL2_DLL_PATH ${SDL2_DLL_PATH} DIRECTORY)
|
||||
get_filename_component(SDL2_MIXER_DLL_PATH ${SDL2_MIXER_DLL_PATH} DIRECTORY)
|
||||
if(MINGW)
|
||||
string(REGEX REPLACE "lib$" "bin" SDL2_DLL_PATH ${SDL2_DLL_PATH})
|
||||
string(REGEX REPLACE "lib$" "bin" SDL2_MIXER_DLL_PATH ${SDL2_MIXER_DLL_PATH})
|
||||
endif()
|
||||
message(STATUS "copy paths='${SDL2_DLL_PATH}' '${SDL2_MIXER_DLL_PATH}'")
|
||||
|
||||
message(STATUS "copy paths='${SDL3_DLL_PATH}' '${SDL2_MIXER_DLL_PATH}'")
|
||||
add_custom_command(TARGET SpaceCadetPinball POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${SDL2_DLL_PATH}/SDL2.dll" $<TARGET_FILE_DIR:SpaceCadetPinball>
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${SDL3_DLL_PATH}/SDL3.dll" $<TARGET_FILE_DIR:SpaceCadetPinball>
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${SDL2_MIXER_DLL_PATH}/SDL2_mixer.dll" $<TARGET_FILE_DIR:SpaceCadetPinball>
|
||||
)
|
||||
)
|
||||
endif()
|
||||
|
||||
if(UNIX AND NOT APPLE)
|
||||
include(GNUInstallDirs)
|
||||
install(TARGETS "${PROJECT_NAME}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
install(FILES "${CMAKE_SOURCE_DIR}/Platform/Linux/${PROJECT_NAME}.desktop" DESTINATION "share/applications")
|
||||
install(FILES "${CMAKE_SOURCE_DIR}/Platform/Linux/${PROJECT_NAME}.metainfo.xml" DESTINATION "share/metainfo")
|
||||
foreach(S 16 32 48 128 192)
|
||||
install(FILES "${CMAKE_SOURCE_DIR}/${PROJECT_NAME}/Icon_${S}x${S}.png" DESTINATION
|
||||
"share/icons/hicolor/${S}x${S}/apps" RENAME "${PROJECT_NAME}.png")
|
||||
endforeach(S)
|
||||
include(GNUInstallDirs)
|
||||
install(TARGETS "${PROJECT_NAME}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
install(FILES "${CMAKE_SOURCE_DIR}/Platform/Linux/${PROJECT_NAME}.desktop" DESTINATION "share/applications")
|
||||
install(FILES "${CMAKE_SOURCE_DIR}/Platform/Linux/${PROJECT_NAME}.metainfo.xml" DESTINATION "share/metainfo")
|
||||
foreach(S 16 32 48 128 192)
|
||||
install(FILES "${CMAKE_SOURCE_DIR}/${PROJECT_NAME}/Icon_${S}x${S}.png" DESTINATION
|
||||
"share/icons/hicolor/${S}x${S}/apps" RENAME "${PROJECT_NAME}.png")
|
||||
endforeach(S)
|
||||
endif()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue