Что случилось с FindSDL2 в CMake? - PullRequest
       10

Что случилось с FindSDL2 в CMake?

0 голосов
/ 02 января 2019

Я использую SDL2 в своей игре. Я всегда использовал пользовательский FindSDL2.cmake, потому что в стандартном наборе CMake никого нет. Однако некоторое время назад появились сообщения о FindSDL2. Пример: Реддит пост .

Если ваш cmake достаточно новый и у него есть файл FindSDL2.cmake, вы можете сделать это:

find_package(SDL2 REQUIRED)

Но когда я загружаю последний CMake (3.13.2), он не включает FindSDL2.cmake.

Что с ним случилось?

Ответы [ 2 ]

0 голосов
/ 17 февраля 2019

Чтобы легко интегрировать библиотеку SDL2, я разработал современные кроссплатформенные современные модули CMake для поиска и использования библиотеки SDL2, а также других связанных библиотек:

Таким образом, единственные вещи, которые вы должны сделать для интеграции библиотеки SDL2:

  1. Модули Clone SDL2 CMake внутри вашего проекта:
git clone https://github.com/aminosbh/sdl2-cmake-modules cmake/sdl2
  1. Добавьте следующие строки в ваш основной CMakeLists.txt
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/sdl2)
find_package(SDL2 REQUIRED)
target_link_libraries(${PROJECT_NAME} SDL2::Main)

Примечание: Если CMake не нашел библиотеку SDL2 (в Windows), мы можем указать параметр CMake SDL2_PATH следующим образом:

cmake .. -DSDL2_PATH="/path/to/sdl2"

Для получения более подробной информации, пожалуйста, прочитайте файл README.md.
Это список образцов и проектов SDL2: https://github.com/aminosbh/sdl-samples-and-projects

0 голосов
/ 02 января 2019

FindSDL2 никогда не появлялся в CMake.Следуя причине отклонения в запросе на получение # 149 , SDL2 поставляется с SDL2Config.cmake, который предоставляет пакет cmake .Документация для find_package гласит, что find_package(SDL2) будет вести себя следующим образом:

  • Ищите FindSDL2.cmake, используйте его, если он существует.(режим модуля)
  • В противном случае используйте информацию в SDL2Config.cmake или sdl2-config.cmake.(режим конфигурации)

Короче говоря, убедитесь, что в вашем пакете SDL2 установлен файл SDL2Config.cmake, который находится на вашем CMAKE_PREFIX_PATH.В документации перечислены точные пути и префиксы, под которыми он выглядит.

...