mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-09-07 11:58:12 +00:00
Removed CMakeLists.txt example that says you shouldn't use it
This commit is contained in:
@@ -363,114 +363,3 @@ However, by default CMake builds static libraries as non-relocatable.
|
|||||||
Configuring SDL with `-DCMAKE_POSITION_INDEPENDENT_CODE=ON` will result in a static `libSDL3.a` library
|
Configuring SDL with `-DCMAKE_POSITION_INDEPENDENT_CODE=ON` will result in a static `libSDL3.a` library
|
||||||
which you can link against to create a shared library.
|
which you can link against to create a shared library.
|
||||||
|
|
||||||
## Help, it doesn't work!
|
|
||||||
|
|
||||||
Below, a SDL3 CMake project can be found that builds 99.9% of time (assuming you have internet connectivity).
|
|
||||||
When you have a problem with building or using SDL, please modify it until it reproduces your issue.
|
|
||||||
|
|
||||||
```cmake
|
|
||||||
cmake_minimum_required(VERSION 3.16)
|
|
||||||
project(sdl_issue)
|
|
||||||
|
|
||||||
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
||||||
# !!!!!! !!!!!!
|
|
||||||
# !!!!!! This CMake script is not using "CMake best practices". !!!!!!
|
|
||||||
# !!!!!! Don't use it in your project. !!!!!!
|
|
||||||
# !!!!!! !!!!!!
|
|
||||||
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
||||||
|
|
||||||
# 1. Try system SDL3 package first
|
|
||||||
find_package(SDL3 QUIET)
|
|
||||||
if(SDL3_FOUND)
|
|
||||||
message(STATUS "Using SDL3 via find_package")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# 2. Try using a vendored SDL library
|
|
||||||
if(NOT SDL3_FOUND AND EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL/CMakeLists.txt")
|
|
||||||
add_subdirectory(SDL EXCLUDE_FROM_ALL)
|
|
||||||
message(STATUS "Using SDL3 via add_subdirectory")
|
|
||||||
set(SDL3_FOUND TRUE)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# 3. Download SDL, and use that.
|
|
||||||
if(NOT SDL3_FOUND)
|
|
||||||
include(FetchContent)
|
|
||||||
set(SDL_SHARED TRUE CACHE BOOL "Build a SDL shared library (if available)")
|
|
||||||
set(SDL_STATIC TRUE CACHE BOOL "Build a SDL static library (if available)")
|
|
||||||
FetchContent_Declare(
|
|
||||||
SDL
|
|
||||||
GIT_REPOSITORY https://github.com/libsdl-org/SDL.git
|
|
||||||
GIT_TAG main # Replace this with a particular git tag or git hash
|
|
||||||
GIT_SHALLOW TRUE
|
|
||||||
GIT_PROGRESS TRUE
|
|
||||||
)
|
|
||||||
message(STATUS "Using SDL3 via FetchContent")
|
|
||||||
FetchContent_MakeAvailable(SDL)
|
|
||||||
set_property(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/_deps/sdl-src" PROPERTY EXCLUDE_FROM_ALL TRUE)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
file(WRITE main.c [===========================================[
|
|
||||||
/**
|
|
||||||
* Modify this source such that it reproduces your problem.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* START of source modifications */
|
|
||||||
|
|
||||||
#include <SDL3/SDL.h>
|
|
||||||
/*
|
|
||||||
* SDL3/SDL_main.h is explicitly not included such that a terminal window would appear on Windows.
|
|
||||||
*/
|
|
||||||
|
|
||||||
int main(int argc, char *argv[]) {
|
|
||||||
(void)argc;
|
|
||||||
(void)argv;
|
|
||||||
|
|
||||||
if (!SDL_Init(SDL_INIT_VIDEO)) {
|
|
||||||
SDL_Log("SDL_Init failed (%s)", SDL_GetError());
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
SDL_Window *window = NULL;
|
|
||||||
SDL_Renderer *renderer = NULL;
|
|
||||||
|
|
||||||
if (!SDL_CreateWindowAndRenderer("SDL issue", 640, 480, 0, &window, &renderer)) {
|
|
||||||
SDL_Log("SDL_CreateWindowAndRenderer failed (%s)", SDL_GetError());
|
|
||||||
SDL_Quit();
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
while (1) {
|
|
||||||
int finished = 0;
|
|
||||||
SDL_Event event;
|
|
||||||
while (SDL_PollEvent(&event)) {
|
|
||||||
if (event.type == SDL_EVENT_QUIT) {
|
|
||||||
finished = 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (finished) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
SDL_SetRenderDrawColor(renderer, 80, 80, 80, SDL_ALPHA_OPAQUE);
|
|
||||||
SDL_RenderClear(renderer);
|
|
||||||
SDL_RenderPresent(renderer);
|
|
||||||
}
|
|
||||||
|
|
||||||
SDL_DestroyRenderer(renderer);
|
|
||||||
SDL_DestroyWindow(window);
|
|
||||||
|
|
||||||
SDL_Quit();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* END of source modifications */
|
|
||||||
|
|
||||||
]===========================================])
|
|
||||||
|
|
||||||
add_executable(sdl_issue main.c)
|
|
||||||
|
|
||||||
target_link_libraries(sdl_issue PRIVATE SDL3::SDL3)
|
|
||||||
# target_link_libraries(sdl_issue PRIVATE SDL3::SDL3-shared)
|
|
||||||
# target_link_libraries(sdl_issue PRIVATE SDL3::SDL3-static)
|
|
||||||
```
|
|
||||||
|
Reference in New Issue
Block a user