Browse Source

Define RetroFW controls via the build script

pull/420/head
Gleb Mazovetskiy 6 years ago committed by Anders Jenbo
parent
commit
d3be0ed6f7
  1. 59
      CMakeLists.txt
  2. 4
      Packaging/OpenDingux/build-retrofw.sh
  3. 4
      Packaging/OpenDingux/build-rg350.sh
  4. 4
      Packaging/OpenDingux/build-rs90.sh
  5. 33
      Packaging/OpenDingux/build.sh
  6. 2
      SourceX/controls/devices/kbcontroller.cpp

59
CMakeLists.txt

@ -294,6 +294,48 @@ target_compile_definitions(devilution PUBLIC
target_compile_definitions(devilutionx PRIVATE ASIO_STANDALONE)
foreach(
def_name
SPAWN
NONET
DINGUX
RETROFW
HAS_KBCTRL
KBCTRL_BUTTON_DPAD_LEFT
KBCTRL_BUTTON_DPAD_RIGHT
KBCTRL_BUTTON_DPAD_UP
KBCTRL_BUTTON_DPAD_DOWN
KBCTRL_BUTTON_B
KBCTRL_BUTTON_A
KBCTRL_BUTTON_Y
KBCTRL_BUTTON_X
KBCTRL_BUTTON_LEFTSTICK
KBCTRL_BUTTON_RIGHTSTICK
KBCTRL_BUTTON_RIGHTSHOULDER
KBCTRL_BUTTON_LEFTSHOULDER
KBCTRL_BUTTON_START
KBCTRL_BUTTON_BACK
KBCTRL_MODIFIER_KEY
JOY_BUTTON_DPAD_LEFT
JOY_BUTTON_DPAD_RIGHT
JOY_BUTTON_DPAD_UP
JOY_BUTTON_DPAD_DOWN
JOY_BUTTON_B
JOY_BUTTON_A
JOY_BUTTON_Y
JOY_BUTTON_X
JOY_BUTTON_LEFTSTICK
JOY_BUTTON_RIGHTSTICK
JOY_BUTTON_RIGHTSHOULDER
JOY_BUTTON_LEFTSHOULDER
JOY_BUTTON_START
JOY_BUTTON_BACK
)
if(${def_name})
list(APPEND def_list ${def_name}=${${def_name}})
endif()
endforeach(def_name)
foreach(target devilution devilutionx)
if(USE_SDL1)
target_link_libraries(${target} PRIVATE
@ -306,14 +348,6 @@ foreach(target devilution devilutionx)
SDL2::SDL2_mixer)
endif()
if(NONET)
target_compile_definitions(${target} PRIVATE NONET)
endif()
if(SPAWN)
target_compile_definitions(${target} PRIVATE SPAWN)
endif()
if(ASAN)
target_compile_options(${target} PUBLIC -fsanitize=address -fsanitize-recover=address)
target_link_libraries(${target} PUBLIC -fsanitize=address -fsanitize-recover=address)
@ -324,13 +358,8 @@ foreach(target devilution devilutionx)
target_link_libraries(${target} PUBLIC -fsanitize=undefined)
endif()
if(DINGUX)
target_compile_definitions(${target} PRIVATE DINGUX)
endif()
if(RETROFW)
target_compile_definitions(${target} PRIVATE RETROFW)
endif()
endforeach(target devilution devilutionx)
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++)

4
Packaging/OpenDingux/build-retrofw.sh

@ -1,2 +1,4 @@
#!/usr/bin/env bash
./build.sh retrofw
declare -r DIR="$(dirname "${BASH_SOURCE[0]}")"
"${DIR}/build.sh" retrofw

4
Packaging/OpenDingux/build-rg350.sh

@ -1,2 +1,4 @@
#!/usr/bin/env bash
./build.sh rg350
declare -r DIR="$(dirname "${BASH_SOURCE[0]}")"
"${DIR}/build.sh" rg350

4
Packaging/OpenDingux/build-rs90.sh

@ -1,2 +1,4 @@
#!/usr/bin/env bash
./build.sh rs90
declare -r DIR="$(dirname "${BASH_SOURCE[0]}")"
"${DIR}/build.sh" rs90

33
Packaging/OpenDingux/build.sh

@ -33,8 +33,6 @@ fi
BUILDROOT="${BUILDROOT:-$HOME/buildroot-${TARGET}-devilutionx}"
set -x
main() {
set -x
prepare_buildroot
@ -64,7 +62,9 @@ prepare_buildroot() {
make_buildroot() {
cd "$BUILDROOT"
if [[ "$TARGET" != "rg350" ]]; then
echo 'LIBSODIUM_CONF_OPTS += --enable-static' >> package/libsodium/libsodium.mk
if ! grep '--enable-static' package/libsodium/libsodium.mk; then
echo 'LIBSODIUM_CONF_OPTS += --enable-static' >> package/libsodium/libsodium.mk
fi
fi
make ${TARGET}_devilutionx_defconfig
if [[ "$TARGET" == "rg350" ]]; then
@ -79,14 +79,33 @@ build() {
mkdir -p ../../build
cd ../../build
rm -f CMakeCache.txt
local -a defs=(-DDINGUX=ON -DBINARY_RELEASE=ON)
if [[ "$TARGET" == "rg350" ]]; then
TARGET_DEFINES="-DNONET=ON"
defs+=(-DNONET=ON)
elif [[ "$TARGET" == "rs90" ]]; then
TARGET_DEFINES="-DUSE_SDL1=ON"
defs+=(-DUSE_SDL1=ON)
else
TARGET_DEFINES="-DRETROFW=ON -DUSE_SDL1=ON"
defs+=(
-DUSE_SDL1=ON
-DRETROFW=ON
-DHAS_KBCTRL=1
-DKBCTRL_BUTTON_DPAD_LEFT=SDLK_LEFT
-DKBCTRL_BUTTON_DPAD_RIGHT=SDLK_RIGHT
-DKBCTRL_BUTTON_DPAD_UP=SDLK_UP
-DKBCTRL_BUTTON_DPAD_DOWN=SDLK_DOWN
-DKBCTRL_BUTTON_B=SDLK_LCTRL
-DKBCTRL_BUTTON_A=SDLK_LALT
-DKBCTRL_BUTTON_Y=SDLK_SPACE
-DKBCTRL_BUTTON_X=SDLK_LSHIFT
-DKBCTRL_BUTTON_RIGHTSHOULDER=SDLK_BACKSPACE
-DKBCTRL_BUTTON_LEFTSHOULDER=SDLK_TAB
-DKBCTRL_BUTTON_START=SDLK_RETURN
-DKBCTRL_BUTTON_BACK=SDLK_ESCAPE
-DKBCTRL_MODIFIER_KEY=SDLK_END
)
fi
cmake .. -DDINGUX=ON -DBINARY_RELEASE=ON ${TARGET_DEFINES} \
cmake .. ${defs[@]} \
-DCMAKE_TOOLCHAIN_FILE="$BUILDROOT/output/host/usr/share/buildroot/toolchainfile.cmake"
make -j $(nproc)
cd -

2
SourceX/controls/devices/kbcontroller.cpp

@ -32,7 +32,7 @@ namespace {
bool IsModifierKey()
{
#ifdef KBCTRL_MODIFIER_KEY
return SDLC_GetKeyState(nullptr)[KBCTRL_MODIFIER_KEY];
return SDLC_GetKeyState()[KBCTRL_MODIFIER_KEY];
#else
return false;
#endif

Loading…
Cancel
Save