Browse Source

[switch] Build with CMake (#334)

* Switch port: Code changes for latest devkitpro
* switch/build.sh: Fewer devkitpro packages
pull/497/head
Gleb Mazovetskiy 7 years ago committed by Anders Jenbo
parent
commit
4f3b1f0fb8
  1. 44
      CMake/switch/FindLIBNX.cmake
  2. 46
      CMake/switch/devkita64-libnx.cmake
  3. 186
      CMake/switch/nx-utils.cmake
  4. 17
      CMake/switch/utils.cmake
  5. 70
      CMakeLists.txt
  6. 2
      Packaging/OpenDingux/build.sh
  7. 67
      Packaging/switch/build.sh
  8. 7
      SourceX/controls/devices/joystick.cpp

44
CMake/switch/FindLIBNX.cmake

@ -0,0 +1,44 @@
# https://github.com/switchpy/libnx-template/blob/7037982c77e1767410143103d5963d0ddc77fb64/cmake/FindLIBNX.cmake
# Tries to find libnx
# Once done, this will define:
# > LIBNX_FOUND - The system has libnx
# > LIBNX_INCLUDE_DIRS - The libnx include directories
# > LIBNX_LIBRARIES - The libnx libraries required for using it
#
# It also adds an imported target named `switch::libnx`.
include(utils) # <- devilutionX patch
if (NOT SWITCH)
cmake_panic("This helper can only be used if you are using the Switch toolchain file.")
endif ()
set(LIBNX_PATHS $ENV{LIBNX} libnx ${LIBNX} ${DEVKITPRO}/libnx)
find_path(LIBNX_INCLUDE_DIR switch.h
PATHS ${LIBNX_PATHS}
PATH_SUFFIXES include)
find_library(LIBNX_LIBRARY NAMES libnx.a
PATHS ${LIBNX_PATHS}
PATH_SUFFIXES lib)
set(LIBNX_INCLUDE_DIRS ${LIBNX_INCLUDE_DIR})
set(LIBNX_LIBRARIES ${LIBNX_LIBRARY})
# Handle the QUIETLY and REQUIRED arguments and set LIBNX_FOUND to TRUE if all above variables are TRUE.
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(LIBNX DEFAULT_MSG
LIBNX_INCLUDE_DIR LIBNX_LIBRARY)
mark_as_advanced(LIBNX_INCLUDE_DIR LIBNX_LIBRARY)
if (LIBNX_FOUND)
set(LIBNX ${LIBNX_INCLUDE_DIR}/..)
cmake_info("Setting LIBNX to ${LIBNX}")
add_library(switch::libnx STATIC IMPORTED GLOBAL)
set_target_properties(switch::libnx PROPERTIES
IMPORTED_LOCATION ${LIBNX_LIBRARY}
INTERFACE_INCLUDE_DIRECTORIES ${LIBNX_INCLUDE_DIR})
endif ()

46
CMake/switch/devkita64-libnx.cmake

@ -0,0 +1,46 @@
if(NOT DEFINED ENV{DEVKITPRO})
message(FATAL_ERROR "Please set the DEVKITPRO env var to <path to devkitpro>")
endif()
# devkitPro paths are broken on Windows. We need to use this macro to fix those.
# from https://github.com/switchpy/libnx-template/blob/7037982c77e1767410143103d5963d0ddc77fb64/devkita64-libnx.cmake
macro(msys_to_cmake_path msys_path resulting_path)
if (WIN32)
string(REGEX REPLACE "^/([a-zA-Z])/" "\\1:/" ${resulting_path} ${msys_path})
else ()
set(${resulting_path} ${msys_path})
endif ()
endmacro()
msys_to_cmake_path($ENV{DEVKITPRO} DEVKITPRO)
# Default devkitpro cmake
include(${DEVKITPRO}/switch.cmake)
# Set root paths:
set(DEVKITA64 ${DEVKITPRO}/devkitA64)
set(LIBNX ${DEVKITPRO}/libnx)
set(PORTLIBS_PATH ${DEVKITPRO}/portlibs)
set(PORTLIBS ${PORTLIBS_PATH}/switch)
set(CMAKE_FIND_ROOT_PATH ${DEVKITA64} ${LIBNX} ${PORTLIBS})
# Set absolute tool paths:
set(TOOLCHAIN_PREFIX ${DEVKITA64}/bin/aarch64-none-elf-)
if(WIN32)
set(TOOLCHAIN_SUFFIX ".exe")
else()
set(TOOLCHAIN_SUFFIX "")
endif()
set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}gcc${TOOLCHAIN_SUFFIX})
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}g++${TOOLCHAIN_SUFFIX})
set(CMAKE_ASM_COMPILER ${TOOLCHAIN_PREFIX}as${TOOLCHAIN_SUFFIX})
set(PKG_CONFIG_EXECUTABLE ${TOOLCHAIN_PREFIX}pkg-config${TOOLCHAIN_SUFFIX})
set(CMAKE_AR ${TOOLCHAIN_PREFIX}gcc-ar${TOOLCHAIN_SUFFIX} CACHE STRING "")
set(CMAKE_RANLIB ${TOOLCHAIN_PREFIX}gcc-ranlib${TOOLCHAIN_SUFFIX} CACHE STRING "")
set(CMAKE_LD "/${TOOLCHAIN_PREFIX}ld${TOOLCHAIN_SUFFIX}" CACHE INTERNAL "")
set(CMAKE_OBJCOPY "${TOOLCHAIN_PREFIX}objcopy${TOOLCHAIN_SUFFIX}" CACHE INTERNAL "")
set(CMAKE_SIZE_UTIL "${TOOLCHAIN_PREFIX}size${TOOLCHAIN_SUFFIX}" CACHE INTERNAL "")
set(BUILD_SHARED_LIBS OFF CACHE INTERNAL "Shared libs not available")
set(SWITCH ON)
add_definitions(-D__SWITCH__ -DSWITCH)

186
CMake/switch/nx-utils.cmake

@ -0,0 +1,186 @@
# https://github.com/vbe0201/libnx-template/blob/5283aabad32789675542ef98dad9c91838a3e729/cmake/nx-utils.cmake
if (NOT SWITCH)
cmake_panic("These utils can only be used if you are using the Switch toolchain file.")
endif ()
#############
## ELF2NRO ##
#############
if (NOT ELF2NRO)
find_program(ELF2NRO elf2nro ${DEVKITPRO}/tools/bin)
if (ELF2NRO)
cmake_info("elf2nro: ${ELF2NRO} - found")
else ()
cmake_warning("elf2nro - not found")
endif ()
endif ()
#############
## ELF2KIP ##
#############
if (NOT ELF2KIP)
find_program(ELF2KIP elf2kip ${DEVKITPRO}/tools/bin)
if (ELF2KIP)
cmake_info("elf2kip: ${ELF2KIP} - found")
else ()
cmake_warning("elf2kip - not found")
endif ()
endif ()
#############
## ELF2NSO ##
#############
if (NOT ELF2NSO)
find_program(ELF2NSO elf2nso ${DEVKITPRO}/tools/bin)
if (ELF2NSO)
cmake_info("elf2nso: ${ELF2NSO} - found")
else ()
cmake_warning("elf2nso - not found")
endif ()
endif ()
#############
## BIN2S ##
#############
if (NOT BIN2S)
find_program(BIN2S bin2s ${DEVKITPRO}/tools/bin)
if (BIN2S)
cmake_info("bin2s: ${BIN2S} - found")
else ()
cmake_warning("bin2s - not found")
endif ()
endif ()
#############
## RAW2C ##
#############
if (NOT RAW2C)
find_program(RAW2C raw2c ${DEVKITPRO}/tools/bin)
if (RAW2C)
cmake_info("raw2c: ${RAW2C} - found")
else ()
cmake_warning("raw2c - not found")
endif ()
endif ()
##################
## BUILD_PFS0 ##
##################
if (NOT BUILD_PFS0)
find_program(BUILD_PFS0 build_pfs0 ${DEVKITPRO}/tools/bin)
if (BUILD_PFS0)
cmake_info("build_pfs0: ${BUILD_PFS0} - found")
else ()
cmake_warning("build_pfs0 - not found")
endif ()
endif ()
################
## NACPTOOL ##
################
if (NOT NACPTOOL)
find_program(NACPTOOL nacptool ${DEVKITPRO}/tools/bin)
if (NACPTOOL)
cmake_info("nacptool: ${NACPTOOL} - found")
else ()
cmake_warning("nacptool - not found")
endif ()
endif ()
macro(acquire_homebrew_icon target)
# This basically imitates the behavior of the Makefiles
# from the switchbrew/switch-examples repository.
if (EXISTS ${target}.jpg)
set(APP_ICON ${target}.jpg)
elseif (EXISTS ${PROJECT_SOURCE_DIR}/assets/icon.jpg)
set(APP_ICON ${PROJECT_SOURCE_DIR}/assets/icon.jpg)
elseif (LIBNX)
set(APP_ICON ${LIBNX}/default_icon.jpg)
else ()
cmake_panic("No icon found, please provide one!")
endif ()
endmacro()
function(add_nso_target target)
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${target}.nso
COMMAND ${ELF2NSO} ${CMAKE_CURRENT_BINARY_DIR}/${target}.elf ${CMAKE_CURRENT_BINARY_DIR}/${target}.nso
DEPENDS ${target}.elf
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
VERBATIM)
if (CMAKE_RUNTIME_OUTPUT_DIRECTORY)
add_custom_target(${target}.nso ALL SOURCES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${target}.nso)
else ()
add_custom_target(${target}.nso ALL SOURCES ${CMAKE_CURRENT_BINARY_DIR}/${target}.nso)
endif ()
endfunction()
function(add_nacp target)
set(__NACP_COMMAND ${NACPTOOL} --create ${APP_TITLE} ${APP_AUTHOR} ${APP_VERSION} ${CMAKE_CURRENT_BINARY_DIR}/${target})
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${target}
COMMAND ${__NACP_COMMAND}
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
VERBATIM)
endfunction()
function(add_nro_target target)
set(__NRO_COMMAND
${ELF2NRO} $<TARGET_FILE:${target}.elf> ${CMAKE_CURRENT_BINARY_DIR}/${target}.nro --nacp=${CMAKE_CURRENT_BINARY_DIR}/${target}.nacp --icon=${APP_ICON})
if (NOT ${CMAKE_CURRENT_BINARY_DIR}/${target}.nacp)
add_nacp(${target}.nacp)
endif ()
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${target}.nro
COMMAND ${__NRO_COMMAND}
DEPENDS ${target}.elf ${CMAKE_CURRENT_BINARY_DIR}/${target}.nacp
VERBATIM)
if (CMAKE_RUNTIME_OUTPUT_DIRECTORY)
add_custom_target(${target}.nro ALL SOURCES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${target}.nro)
else ()
add_custom_target(${target}.nro ALL SOURCES ${CMAKE_CURRENT_BINARY_DIR}/${target}.nro)
endif ()
endfunction()
function(build_switch_binaries target)
get_filename_component(target_we ${target} NAME_WE)
if (NOT APP_TITLE)
if (${ARGC} GREATER 1)
set(APP_TITLE ${ARGV1})
else ()
set(APP_TITLE ${target_we})
endif ()
endif ()
if (NOT APP_AUTHOR)
if (${ARGC} GREATER 2)
set(APP_AUTHOR ${ARGV2})
else ()
set(APP_AUTHOR "Unspecified Author")
endif ()
endif ()
if (NOT APP_ICON)
if (${ARGC} GREATER 4)
set(APP_ICON ${ARGV4})
else ()
acquire_homebrew_icon(${target_we})
endif ()
endif ()
if (NOT APP_VERSION)
if (${ARGC} GREATER 3)
set(APP_VERSION ${ARGV3})
else ()
set(APP_VERSION "1.0.0")
endif ()
endif ()
# Build the binaries
add_nso_target(${target_we})
add_nro_target(${target_we})
endfunction()

17
CMake/switch/utils.cmake

@ -0,0 +1,17 @@
# https://github.com/switchpy/libnx-template/blob/7037982c77e1767410143103d5963d0ddc77fb64/cmake/utils.cmake
function(cmake_info message)
if (cmake_VERBOSE)
message("Build-Info: ${message}")
endif ()
endfunction()
function(cmake_warning message)
if (cmake_VERBOSE)
message(WARNING "${message}")
endif ()
endfunction()
function(cmake_panic message)
message(FATAL_ERROR "${message}")
endfunction()

70
CMakeLists.txt

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.10)
cmake_minimum_required(VERSION 3.10) # CMP0083 NEW
include(CMake/out_of_tree.cmake)
@ -9,6 +9,7 @@ endif()
option(ASAN "Enable address sanitizer" ON)
option(UBSAN "Enable undefined behaviour sanitizer" ON)
option(DEBUG "Enable debug mode in engine" ON)
option(PIE "Generate position-independent code" OFF)
option(LTO "Enable link-time optimization (if supported by the toolchain)" OFF)
option(SPAWN "Build the shareware version" OFF)
option(DIST "Dynamically link only glibc and SDL2" OFF)
@ -62,6 +63,15 @@ endif()
list(APPEND CMAKE_MODULE_PATH "${DevilutionX_SOURCE_DIR}/CMake")
if(SWITCH)
set(ASAN OFF)
set(UBSAN OFF)
set(PIE ON)
list(APPEND CMAKE_MODULE_PATH "${DevilutionX_SOURCE_DIR}/CMake/switch")
find_package(LIBNX REQUIRED)
endif()
if(${CMAKE_SYSTEM_NAME} STREQUAL FreeBSD OR ${CMAKE_SYSTEM_NAME} STREQUAL OpenBSD)
set(ASAN OFF)
set(UBSAN OFF)
@ -83,6 +93,10 @@ if(DIST OR DINGUX)
set(sodium_USE_STATIC_LIBS ON)
endif()
if(PIE)
set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
endif()
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
@ -265,18 +279,24 @@ if(NOT NONET)
SourceX/dvlnet/udp_p2p.cpp)
endif()
add_executable(devilutionx MACOSX_BUNDLE ${devilutionx_SRCS})
set(BIN_TARGET devilutionx)
if(SWITCH)
set(BIN_TARGET devilutionx.elf)
endif()
add_executable(${BIN_TARGET} MACOSX_BUNDLE ${devilutionx_SRCS})
configure_file(SourceS/config.h.in config.h @ONLY)
target_include_directories(devilution PUBLIC Source SourceS ${CMAKE_CURRENT_BINARY_DIR})
target_include_directories(devilutionx PRIVATE
target_include_directories(${BIN_TARGET} PRIVATE
SourceX
3rdParty/asio/include
3rdParty/Radon/Radon/include
3rdParty/libsmacker)
target_link_libraries(devilution PUBLIC Threads::Threads)
target_link_libraries(devilutionx PRIVATE
target_link_libraries(${BIN_TARGET} PRIVATE
devilution
PKWare
StormLib
@ -284,7 +304,7 @@ target_link_libraries(devilutionx PRIVATE
Radon)
if(NOT NONET)
target_link_libraries(devilutionx PRIVATE sodium)
target_link_libraries(${BIN_TARGET} PRIVATE sodium)
endif()
target_compile_definitions(devilution PRIVATE DEVILUTION_ENGINE)
@ -292,7 +312,7 @@ target_compile_definitions(devilution PUBLIC
"$<$<BOOL:${DEBUG}>:_DEBUG>"
# Skip fades and other fluff
"$<$<BOOL:${FASTER}>:FASTER>")
target_compile_definitions(devilutionx PRIVATE ASIO_STANDALONE)
target_compile_definitions(${BIN_TARGET} PRIVATE ASIO_STANDALONE)
# Defines without value
foreach(
@ -364,7 +384,7 @@ foreach(
endif()
endforeach(def_name)
foreach(target devilution devilutionx)
foreach(target devilution ${BIN_TARGET})
if(USE_SDL1)
target_link_libraries(${target} PRIVATE
${SDL_LIBRARY} ${SDL_TTF_LIBRARY} ${SDL_MIXER_LIBRARY})
@ -386,15 +406,20 @@ foreach(target devilution devilutionx)
target_link_libraries(${target} PUBLIC -fsanitize=undefined)
endif()
if(SWITCH)
target_link_libraries(${target} PRIVATE switch::libnx
-lfreetype -lvorbisfile -lvorbis -logg -lmodplug -lmpg123 -lSDL2 -lopusfile -lopus -lEGL -lglapi -ldrm_nouveau -lpng -lbz2 -lz -lnx)
endif()
target_compile_definitions(${target} PRIVATE ${def_list})
endforeach(target)
if(DIST AND CMAKE_CXX_COMPILER_ID MATCHES "GNU")
target_link_libraries(devilutionx PUBLIC -static-libgcc -static-libstdc++)
target_link_libraries(${BIN_TARGET} PUBLIC -static-libgcc -static-libstdc++)
endif()
if(WIN32)
target_link_libraries(devilutionx PRIVATE wsock32 ws2_32 wininet)
target_link_libraries(${BIN_TARGET} PRIVATE wsock32 ws2_32 wininet)
if(NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
target_compile_options(devilution PUBLIC $<$<CONFIG:Debug>:-gstabs>)
@ -407,7 +432,7 @@ if(NOT WIN32 AND NOT APPLE)
endif()
if(HAIKU)
target_link_libraries(devilutionx PRIVATE network)
target_link_libraries(${BIN_TARGET} PRIVATE network)
endif()
if(NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
@ -424,11 +449,11 @@ if(NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
target_compile_options(devilution PRIVATE -fpermissive -w)
# Warnings for devilutionX
target_compile_options(devilutionx PRIVATE -Wall -Wextra -Wno-write-strings -Wno-unused-parameter -Wno-missing-field-initializers -Wno-format-security)
target_compile_options(${BIN_TARGET} PRIVATE -Wall -Wextra -Wno-write-strings -Wno-unused-parameter -Wno-missing-field-initializers -Wno-format-security)
# For ARM and other default unsigned char platforms
target_compile_options(devilution PRIVATE -fsigned-char)
target_compile_options(devilutionx PRIVATE -fsigned-char)
target_compile_options(${BIN_TARGET} PRIVATE -fsigned-char)
endif()
if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
@ -437,9 +462,9 @@ endif()
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
# Style issues
target_compile_options(devilutionx PRIVATE -Wno-parentheses -Wno-logical-op-parentheses -Wno-bitwise-op-parentheses)
target_compile_options(${BIN_TARGET} PRIVATE -Wno-parentheses -Wno-logical-op-parentheses -Wno-bitwise-op-parentheses)
# Silence warnings about __int64 alignment hack not always being applicable
target_compile_options(devilutionx PRIVATE -Wno-ignored-attributes)
target_compile_options(${BIN_TARGET} PRIVATE -Wno-ignored-attributes)
# Silence appfat.cpp warnings
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-narrowing")
endif()
@ -454,10 +479,10 @@ if(APPLE)
set(MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION})
set(MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION})
set(MACOSX_BUNDLE_LONG_VERSION_STRING "Version ${PROJECT_VERSION}")
set_target_properties(devilutionx PROPERTIES MACOSX_BUNDLE_ICON_FILE "AppIcon")
set_target_properties(devilutionx PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/Packaging/macOS/Info.plist")
set_target_properties(${BIN_TARGET} PROPERTIES MACOSX_BUNDLE_ICON_FILE "AppIcon")
set_target_properties(${BIN_TARGET} PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/Packaging/macOS/Info.plist")
install (TARGETS devilutionx DESTINATION ./)
install (TARGETS ${BIN_TARGET} DESTINATION ./)
if(DIST)
install(CODE "
@ -475,6 +500,15 @@ if(APPLE)
include(CPack)
endif()
if(SWITCH)
set(APP_TITLE "DevilutionX")
set(APP_AUTHOR "Devilution Team")
set(APP_ICON "${PROJECT_SOURCE_DIR}/Packaging/switch/icon.jpg")
set(APP_VERSION ${PROJECT_VERSION})
include(nx-utils)
build_switch_binaries(${BIN_TARGET})
endif()
if(DINGUX)
set_target_properties(devilutionx PROPERTIES OUTPUT_NAME "devilutionx.dge")
set_target_properties(${BIN_TARGET} PROPERTIES OUTPUT_NAME "devilutionx.dge")
endif()

2
Packaging/OpenDingux/build.sh

@ -133,7 +133,7 @@ build() {
fi
cmake .. ${defs[@]} \
-DCMAKE_TOOLCHAIN_FILE="$BUILDROOT/output/host/usr/share/buildroot/toolchainfile.cmake"
make -j $(nproc)
make -j $(getconf _NPROCESSORS_ONLN)
cd -
}

67
Packaging/switch/build.sh

@ -0,0 +1,67 @@
#!/usr/bin/env bash
set -euo pipefail
DEVKITPRO="${DEVKITPRO:-/opt/devkitpro}"
declare -r DIR="$(dirname "${BASH_SOURCE[0]}")"
cd "$DIR"
main() {
prepare_devkitpro
set -x
install_deps
build
}
build() {
mkdir -p ../../build
cd ../../build
rm -f CMakeCache.txt
DEVKITPRO="$DEVKITPRO" cmake .. \
-DJOY_BUTTON_DPAD_LEFT=16 \
-DJOY_BUTTON_DPAD_UP=17 \
-DJOY_BUTTON_DPAD_RIGHT=18 \
-DJOY_BUTTON_DPAD_DOWN=19 \
-DBINARY_RELEASE=ON \
-DNONET=ON \
-DPREFILL_PLAYER_NAME=ON \
-DCMAKE_TOOLCHAIN_FILE=../CMake/switch/devkita64-libnx.cmake
DEVKITPRO="$DEVKITPRO" make -j "$(getconf _NPROCESSORS_ONLN)"
cd -
}
package() {
./package.sh ../../build/devilutionx-opendingux-musl-sdl1.ipk
}
install_deps() {
"$DEVKITPRO/pacman/bin/pacman" -S --needed --noconfirm --quiet \
switch-freetype switch-mesa switch-glad switch-glm switch-sdl2 \
switch-sdl2_ttf switch-sdl2_mixer switch-libvorbis switch-libmikmod switch-libsodium \
libnx devkitA64 devkitA64 general-tools switch-tools devkitpro-pkgbuild-helpers
}
prepare_devkitpro() {
if [[ -d $DEVKITPRO ]]; then
return;
fi
if which dpkg > /dev/null; then
install_devkitpro_debian
else
>&2 printf "Please set DEVKITPRO:\nhttps://devkitpro.org/wiki/Getting_Started\n"
exit 1
fi
}
install_devkitpro_debian() {
>&2 echo 'Installing devkitpro-pacman.deb from GitHub...'
local -r dpkg_path=/tmp/devkitpro-pacman.deb
set -x
\curl -L https://github.com/devkitPro/pacman/releases/download/devkitpro-pacman-1.0.1/devkitpro-pacman.deb -o "$dpkg_path"
sudo dpkg -i "$dpkg_path"
rm "$dpkg_path"
{ set +x; } 2>/dev/null
}
main

7
SourceX/controls/devices/joystick.cpp

@ -4,13 +4,6 @@
#include "controls/controller_motion.h"
#include "stubs.h"
#ifdef __SWITCH__
#define JOY_BUTTON_DPAD_LEFT 16
#define JOY_BUTTON_DPAD_UP 17
#define JOY_BUTTON_DPAD_RIGHT 18
#define JOY_BUTTON_DPAD_DOWN 19
#endif
namespace dvl {
ControllerButton JoyButtonToControllerButton(const SDL_Event &event)

Loading…
Cancel
Save