Cmake + SDL3_ttf. Как создать подкаталог?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Cmake + SDL3_ttf. Как создать подкаталог?

Сообщение Anonymous »

VSCode,WIndows 10.
Я хочу понять, как cmake работает с sdl3. Нашёл такой урок, конечно есть sdl2 и думал, что и с sdl3 будет работать. Урок: https://www.studyplan.dev/sdl2-minesweeper/sdl2-cmake
cmake_minimum_required(VERSION 3.12.0)
project(helloworld)
add_subdirectory(SDL)
add_subdirectory(SDL_ttf)

add_executable(helloworld
main.cpp
)

target_link_libraries(helloworld
PRIVATE SDL3::SDL3)
target_link_libraries(helloworld PRIVATE
SDL3_ttf::SDL3_ttf
)

add_custom_command(
TARGET helloworld POST_BUILD COMMAND
${CMAKE_COMMAND} -E copy_if_different
"$"
"$"
"$"
VERBATIM
)

Но я получаю ошибку при использовании freetype внутри sdl_ttf
[cmake] -- SDL3_ttf: Using system freetype library
[cmake] CMake Error at C:/Program Files/CMake/share/cmake-3.31/Modules/FindPackageHandleStandardArgs.cmake:233 (message):
[cmake] Could NOT find Freetype (missing: FREETYPE_LIBRARY FREETYPE_INCLUDE_DIRS)
[cmake] Call Stack (most recent call first):
[cmake] C:/Program Files/CMake/share/cmake-3.31/Modules/FindPackageHandleStandardArgs.cmake:603 (_FPHSA_FAILURE_MESSAGE)
[cmake] C:/Program Files/CMake/share/cmake-3.31/Modules/FindFreetype.cmake:165 (find_package_handle_standard_args)
[cmake] SDL_ttf/CMakeLists.txt:266 (find_package)

Я хочу добавить внешний каталог и добавить туда исходные папки SDL3, SDL3_image, SDL3_ttf.
Получите такую ​​иерархию
внешний /
SDL3
SDL_image
SDL_ttf
src /
main
ui
/ src
incl

Никак не понимаю принцип подключения внешних библиотек (пример SDL3_ttf). Может кто-нибудь просто показать рабочий пример и что он для этого делает
Решение:
cmake_minimum_required(VERSION 3.31)
SET(SDLTTF_VENDORED ON)

project(helloworld)
add_subdirectory(SDL EXCLUDE_FROM_ALL)
add_subdirectory(SDL_ttf EXCLUDE_FROM_ALL)
add_executable( helloworld main.cpp)
target_include_directories(helloworld PRIVATE
SDL/include
SDL_ttf/include
)
target_link_libraries(helloworld
PRIVATE SDL3::SDL3
SDL3_ttf::SDL3_ttf
Freetype::Freetype
)
add_custom_command(
TARGET helloworld PRE_BUILD COMMAND
${CMAKE_COMMAND} -E copy_if_different
$
$
$
$
VERBATIM
)


Подробнее здесь: https://stackoverflow.com/questions/792 ... bdirectory
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»