Я работаю над небольшим проектом, использующим SDL2, и использую cmake для сборки и компиляции кода, чтобы он работал на разных платформах (в основном, windows и linux). Сейчас у меня проблемы с поиском библиотеки SDL2 с помощью функции find_package в Windows.
Я уже реализовал свой собственный файл FindSDL2.cmake, основанный на паре блогов, ссылки на которые были связаны по этому вопросу, но он все еще не может найти библиотеку SDL2.
Другое решение, которое я видел, это передача пути, где SDL2 установлен, в CMAKE_PREFIX_PATH, но если я что-то упустил, это означало бы, что если бы я поместил свой код на github, а кто-то захотел собрать его, запустите его Самим им также придется пройти путь, по которому они установили SDL2, что немного раздражает, а также не то, что делают другие подобные проекты с открытым исходным кодом.
Это мой файл CMakeLists.txt
cmake_minimum_required(VERSION 3.0.0)
project(Generic-Fighting-Game VERSION 0.1.0)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")
include(CTest)
enable_testing()
find_package(SDL2 REQUIRED)
include_directories("${SDL2_INCLUDE_DIR}")
add_executable(Generic-Fighting-Game src/main.cpp)
target_link_libraries(Generic-Fighting-Game ${SDL2_LIBRARY})
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)
И использовал файл FindSDL2.cmake, найденный здесь https://github.com/brendan-w/collector/blob/master/cmake/FindSDL2.cmake, поскольку я недостаточно разбираюсь в cmake, чтобы создать свой собственный файл FindSDL2.cmake
Когда я запускаю make в каталоге сборки, я получаю следующую ошибку
C:\Users\HP\Documents\Generic-Fighting-Game\build>make
CMake Error at C:/Program Files/CMake/share/cmake-3.14/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
Could NOT find SDL2 (missing: SDL2_LIBRARY SDL2_INCLUDE_DIR)
Call Stack (most recent call first):
C:/Program Files/CMake/share/cmake-3.14/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
cmake/FindSDL2.cmake:163 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
CMakeLists.txt:9 (find_package)
-- Configuring incomplete, errors occurred!
See also "C:/Users/HP/Documents/Generic-Fighting-Game/build/CMakeFiles/CMakeOutput.log".
See also "C:/Users/HP/Documents/Generic-Fighting-Game/build/CMakeFiles/CMakeError.log".
Makefile:604: recipe for target 'cmake_check_build_system' failed
make: *** [cmake_check_build_system] Error 1
Любая помощь приветствуется!