Я пытаюсь скомпилировать проект C ++, используя CMake для веб-сборки. Я использую emscripten и хочу использовать порты emscripten для SDL2 и Freetype. Обычно при компиляции с em cc вы должны использовать флаги: -USE_SDL = 2 и -USE_FREETYPE = 1, чтобы включить эти порты. Однако я не знаю, как добиться этого с помощью CMake.
Это мой файл CMakeList:
cmake_minimum_required(VERSION 3.15)
project(project)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra")
find_package(SDL2 REQUIRED)
find_package(Freetype REQUIRED)
include_directories(${CMAKE_SOURCE_DIR}/include ${SDL2_INCLUDE_DIRS} ${FREETYPE_INCLUDE_DIRS})
add_executable(project src/main.cpp src/glad.c src/Game.cpp src/Block.cpp include/jumpyblock/Block.h)
target_link_libraries(project ${SDL2_LIBRARIES} ${FREETYPE_LIBRARIES})
Он компилируется и успешно работает с использованием обычного cmake.
Так До сих пор я пытался скомпилировать с emcmake cmake . && make
, что приводило меня к ошибке, в которой говорилось, что он не может найти файл конфигурации пакета для SDL2.
И я пытался изменить файл CMakeList для использования em cc флаги для портов:
cmake_minimum_required(VERSION 3.15)
project(project)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -USE_SDL=2 -USE_FREETYPE=1")
include_directories(${CMAKE_SOURCE_DIR}/include ${SDL2_INCLUDE_DIRS} ${FREETYPE_INCLUDE_DIRS})
add_executable(project src/main.cpp src/glad.c src/Game.cpp src/Block.cpp include/jumpyblock/Block.h )
target_link_libraries(project ${SDL2_LIBRARIES} ${FREETYPE_LIBRARIES})
С этим файлом cmake emcmake cmake .
запускается успешно, но затем make
жалуется, что не может найти 'SDL2 / SDL.h'.
Любая помощь будет принята с благодарностью.