RetroArch/deps/switchres/examples
..
multi_monitor.cpp
README.md
switch_refresh.cpp
test_dlopen.cpp
test_liblink.cpp

ANY OS - BASIC INFORMATION

Build libswitchres

It supports cross compilation, and will build both dynamic and static libs as per the target OS

make libswitchres

Basic usage as a client with examples

libswitchres can be called in 2 different ways (with example code):

  • test_dlopen.c -> by explicitely opening a .so/.dll, import the srlib object and call associated functions
  • test_liblink.c -> by simply linking libswitchres at build time

These options are generic whether you build for Linux or Windows

  • -I ../ (to get libswitchres_wrapper.h)
  • -L ../ or -L ./ (for win32, when the dll has been copied in the examples folder)
  • -lswitchres to link the lib if not manually opening it in the code

#please note#: static libs aven't been tested yet

LINUX

You'll need a few extra parameters for gcc:

  • -ldl (will try later to find a way to statically link libdl.a)

When running, dont forget to add before the binary LD_LIBRARY_PATH=<libswitchres.so pass, even if it's ./>:$LD_LIBRARY_PATH

Examples:

make libswitchres
cd examples
g++ -o linux_dl_test test_dlopen.cpp -I ../ -ldl
LD_LIBRARY_PATH=../:$LD_LIBRARY_PATH ./linux_dl_test

g++ -o linux_link_lib test_liblink.cpp -I ../ -L../ -lswitchres -ldl
LD_LIBRARY_PATH=../:$LD_LIBRARY_PATH ./linux_link_lib

WINDOWS

Pretty much the same as Linux, but with mingw64. The resulting exe and dll can be tested with wine

Examples (cross-building from windows)

make PLATFORM=NT CROSS_COMPILE=x86_64-w64-mingw32- libswitchres
(copy the dll to examples)

x86_64-w64-mingw32-g++-win32 test_dlopen.cpp -o w32_loaddll.exe -I ../ -static-libgcc -static-libstdc++
w32_loaddll.exe

x86_64-w64-mingw32-g++-win32 test_liblink.cpp -o w32_linkdll.exe -I ../ -static-libgcc -static-libstdc++ -L ./ -lswitchres
w32_linkdll.exe

Note that, when building w32_linkdll.exe, I couldn't point to another dir else than ./ with -L