mirror of
https://github.com/ggerganov/ggwave.git
synced 2026-02-06 08:37:59 +08:00
130 lines
2.7 KiB
CMake
130 lines
2.7 KiB
CMake
# dependencies
|
|
|
|
find_package(Threads REQUIRED)
|
|
|
|
if (GGWAVE_SUPPORT_SDL2)
|
|
# SDL2
|
|
|
|
if (EMSCRIPTEN)
|
|
set(CMAKE_CXX_FLAGS " \
|
|
-s USE_SDL=2 \
|
|
-s DISABLE_EXCEPTION_CATCHING=0 \
|
|
")
|
|
|
|
set(CMAKE_CXX_LINK_FLAGS " \
|
|
--bind \
|
|
-s TOTAL_MEMORY=67108864 \
|
|
-s ASSERTIONS=1 \
|
|
-s 'EXPORTED_RUNTIME_METHODS=[\"writeArrayToMemory\"]' \
|
|
")
|
|
|
|
unset(SDL2_INCLUDE_DIRS)
|
|
unset(SDL2_LIBRARIES)
|
|
endif()
|
|
|
|
if (NOT EMSCRIPTEN)
|
|
find_package(SDL2)
|
|
|
|
if (NOT USE_FINDSDL2 AND NOT SDL2_FOUND)
|
|
message(WARNING "Unable to find SDL2 library. It is either not installed or CMake cannot find it."
|
|
" In the latter case, setting the USE_FINDSDL2 variable might help:\n"
|
|
" $ cmake -D USE_FINDSDL2 .."
|
|
)
|
|
|
|
message(FATAL_ERROR "Aborting")
|
|
endif()
|
|
|
|
string(STRIP "${SDL2_LIBRARIES}" SDL2_LIBRARIES)
|
|
|
|
message(STATUS "SDL2_INCLUDE_DIRS = ${SDL2_INCLUDE_DIRS}")
|
|
message(STATUS "SDL2_LIBRARIES = ${SDL2_LIBRARIES}")
|
|
endif()
|
|
endif()
|
|
|
|
# third-party
|
|
|
|
add_subdirectory(third-party)
|
|
|
|
# helper libraries
|
|
|
|
add_library(ggwave-common
|
|
ggwave-common.cpp
|
|
)
|
|
|
|
target_link_libraries(ggwave-common PRIVATE
|
|
${CMAKE_DL_LIBS}
|
|
)
|
|
|
|
if (MINGW)
|
|
target_link_libraries(ggwave-common PUBLIC
|
|
stdc++
|
|
)
|
|
endif()
|
|
|
|
if (GGWAVE_SUPPORT_SDL2)
|
|
# ggwave-common-sdl2
|
|
|
|
add_library(ggwave-common-sdl2
|
|
ggwave-common-sdl2.cpp
|
|
)
|
|
|
|
target_include_directories(ggwave-common-sdl2 PUBLIC
|
|
${SDL2_INCLUDE_DIRS}
|
|
)
|
|
|
|
target_link_libraries(ggwave-common-sdl2 PRIVATE
|
|
ggwave
|
|
imgui-sdl2
|
|
${SDL2_LIBRARIES}
|
|
)
|
|
endif()
|
|
|
|
# examples
|
|
|
|
if (EMSCRIPTEN)
|
|
add_subdirectory(ggwave-js)
|
|
add_subdirectory(buttons)
|
|
else()
|
|
add_subdirectory(ggwave-to-file)
|
|
add_subdirectory(ggwave-from-file)
|
|
|
|
add_subdirectory(arduino-rx)
|
|
add_subdirectory(arduino-tx)
|
|
add_subdirectory(arduino-tx-obsolete)
|
|
add_subdirectory(esp32-rx)
|
|
add_subdirectory(rp2040-rx)
|
|
endif()
|
|
|
|
if (GGWAVE_SUPPORT_SDL2)
|
|
if (UNIX AND NOT APPLE)
|
|
add_subdirectory(r2t2)
|
|
endif()
|
|
|
|
add_subdirectory(arduino-rx-web)
|
|
if (EMSCRIPTEN)
|
|
# emscripten sdl2 examples
|
|
|
|
add_subdirectory(ggwave-wasm)
|
|
else()
|
|
# non-emscripten sdl2 examples
|
|
|
|
add_subdirectory(ggwave-rx)
|
|
add_subdirectory(ggwave-cli)
|
|
endif()
|
|
|
|
add_subdirectory(waver)
|
|
add_subdirectory(spectrogram)
|
|
endif()
|
|
|
|
install(TARGETS ggwave-common
|
|
LIBRARY DESTINATION lib
|
|
ARCHIVE DESTINATION lib/static
|
|
)
|
|
|
|
if (GGWAVE_SUPPORT_SDL2)
|
|
install(TARGETS ggwave-common-sdl2
|
|
LIBRARY DESTINATION lib
|
|
ARCHIVE DESTINATION lib/static
|
|
)
|
|
endif()
|