dolphin/Source/Core/InputCommon/CMakeLists.txt
rlnilsen 4cb3baba5c Add support for motion controllers via the CemuHook controller input protocol.
This is done by:
1) Implementing said protocol in a new controller input class CemuHookUDPServer.
2) Adding functionality in the WiimoteEmu class for pushing that motion input to the emulated Wiimote and MotionPlus.
3) Suitably modifying the UI for configuring an Emulated Wii Remote.
2019-10-26 02:19:53 +02:00

184 lines
5.8 KiB
CMake

add_library(inputcommon
InputConfig.cpp
InputConfig.h
InputProfile.cpp
InputProfile.h
ControllerEmu/ControllerEmu.cpp
ControllerEmu/ControllerEmu.h
ControllerEmu/StickGate.cpp
ControllerEmu/StickGate.h
ControllerEmu/Control/Control.cpp
ControllerEmu/Control/Control.h
ControllerEmu/Control/Input.cpp
ControllerEmu/Control/Input.h
ControllerEmu/Control/Output.cpp
ControllerEmu/Control/Output.h
ControllerEmu/ControlGroup/AnalogStick.cpp
ControllerEmu/ControlGroup/AnalogStick.h
ControllerEmu/ControlGroup/Attachments.cpp
ControllerEmu/ControlGroup/Attachments.h
ControllerEmu/ControlGroup/Buttons.cpp
ControllerEmu/ControlGroup/Buttons.h
ControllerEmu/ControlGroup/ControlGroup.cpp
ControllerEmu/ControlGroup/ControlGroup.h
ControllerEmu/ControlGroup/Cursor.cpp
ControllerEmu/ControlGroup/Cursor.h
ControllerEmu/ControlGroup/Force.cpp
ControllerEmu/ControlGroup/Force.h
ControllerEmu/ControlGroup/IMUAccelerometer.cpp
ControllerEmu/ControlGroup/IMUAccelerometer.h
ControllerEmu/ControlGroup/IMUCursor.cpp
ControllerEmu/ControlGroup/IMUCursor.h
ControllerEmu/ControlGroup/IMUGyroscope.cpp
ControllerEmu/ControlGroup/IMUGyroscope.h
ControllerEmu/ControlGroup/MixedTriggers.cpp
ControllerEmu/ControlGroup/MixedTriggers.h
ControllerEmu/ControlGroup/ModifySettingsButton.cpp
ControllerEmu/ControlGroup/ModifySettingsButton.h
ControllerEmu/ControlGroup/Slider.cpp
ControllerEmu/ControlGroup/Slider.h
ControllerEmu/ControlGroup/Tilt.cpp
ControllerEmu/ControlGroup/Tilt.h
ControllerEmu/ControlGroup/Triggers.cpp
ControllerEmu/ControlGroup/Triggers.h
ControllerEmu/Setting/NumericSetting.cpp
ControllerEmu/Setting/NumericSetting.h
ControllerInterface/CemuHookUDPServer/CemuHookUDPServer.cpp
ControllerInterface/CemuHookUDPServer/CemuHookUDPServer.h
ControllerInterface/CemuHookUDPServer/CemuHookUDPServerProto.h
ControllerInterface/ControllerInterface.cpp
ControllerInterface/ControllerInterface.h
ControllerInterface/Device.cpp
ControllerInterface/Device.h
ControlReference/ControlReference.cpp
ControlReference/ControlReference.h
ControlReference/ExpressionParser.cpp
ControlReference/ExpressionParser.h
ControlReference/FunctionExpression.cpp
ControlReference/FunctionExpression.h
)
target_link_libraries(inputcommon PUBLIC
common
)
if(WIN32)
target_sources(inputcommon PRIVATE
ControllerInterface/DInput/DInput.cpp
ControllerInterface/DInput/DInput.h
ControllerInterface/DInput/DInput8.h
ControllerInterface/DInput/DInputJoystick.cpp
ControllerInterface/DInput/DInputJoystick.h
ControllerInterface/DInput/DInputKeyboardMouse.cpp
ControllerInterface/DInput/DInputKeyboardMouse.h
ControllerInterface/DInput/NamedKeys.h
ControllerInterface/DInput/XInputFilter.cpp
ControllerInterface/DInput/XInputFilter.h
ControllerInterface/Win32/Win32.cpp
ControllerInterface/Win32/Win32.h
ControllerInterface/XInput/XInput.cpp
ControllerInterface/XInput/XInput.h
ControllerInterface/ForceFeedback/ForceFeedbackDevice.cpp
ControllerInterface/ForceFeedback/ForceFeedbackDevice.h
)
elseif(APPLE)
target_sources(inputcommon PRIVATE
ControllerInterface/OSX/OSX.h
ControllerInterface/OSX/OSX.mm
ControllerInterface/OSX/OSXJoystick.h
ControllerInterface/OSX/OSXJoystick.mm
ControllerInterface/OSX/RunLoopStopper.h
ControllerInterface/Quartz/Quartz.h
ControllerInterface/Quartz/Quartz.mm
ControllerInterface/Quartz/QuartzKeyboardAndMouse.h
ControllerInterface/Quartz/QuartzKeyboardAndMouse.mm
ControllerInterface/ForceFeedback/ForceFeedbackDevice.cpp
ControllerInterface/ForceFeedback/ForceFeedbackDevice.h
)
target_link_libraries(inputcommon PRIVATE
${COREFOUNDATION_LIBRARY}
${CARBON_LIBRARY}
${COCOA_LIBRARY}
${FORCEFEEDBACK_LIBRARY}
${IOK_LIBRARY}
)
elseif(X11_FOUND)
target_sources(inputcommon PRIVATE
ControllerInterface/Xlib/XInput2.cpp
ControllerInterface/Xlib/XInput2.h
)
target_link_libraries(inputcommon PUBLIC
${X11_LIBRARIES}
${X11_INPUT_LIBRARIES}
)
elseif(ANDROID)
target_compile_definitions(inputcommon PRIVATE -DCIFACE_USE_ANDROID)
target_sources(inputcommon PRIVATE
ControllerInterface/Android/Android.cpp
ControllerInterface/Android/Android.h
)
endif()
if(ANDROID)
target_sources(inputcommon PRIVATE GCAdapter_Android.cpp)
else()
target_sources(inputcommon PRIVATE
GCAdapter.cpp
GCAdapter.h
)
target_link_libraries(inputcommon PUBLIC ${LIBUSB_LIBRARIES})
endif()
if(LIBEVDEV_FOUND AND LIBUDEV_FOUND)
target_sources(inputcommon
PRIVATE
ControllerInterface/evdev/evdev.cpp
ControllerInterface/evdev/evdev.h
)
target_include_directories(inputcommon
PRIVATE
${LIBEVDEV_INCLUDE_DIR}
${LIBUDEV_INCLUDE_DIR}
)
target_link_libraries(inputcommon
PRIVATE
${LIBEVDEV_LIBRARY}
${LIBUDEV_LIBRARY}
)
endif()
if(UNIX)
target_sources(inputcommon PRIVATE
ControllerInterface/Pipes/Pipes.cpp
ControllerInterface/Pipes/Pipes.h
)
endif()
if(ENABLE_SDL)
find_package(SDL2)
if(SDL2_FOUND)
message(STATUS "Using shared SDL2")
set(SDL_TARGET SDL2::SDL2)
else()
# SDL2 not found, try SDL
find_package(SDL)
if(SDL_FOUND)
message(STATUS "Using shared SDL")
add_library(System_SDL INTERFACE)
target_include_directories(System_SDL INTERFACE ${SDL_INCLUDE_DIR})
target_link_libraries(System_SDL INTERFACE ${SDL_LIBRARY})
set(SDL_TARGET System_SDL)
endif()
endif()
if(SDL_TARGET AND TARGET ${SDL_TARGET})
target_sources(inputcommon PRIVATE
ControllerInterface/SDL/SDL.cpp
ControllerInterface/SDL/SDL.h
)
target_link_libraries(inputcommon PRIVATE ${SDL_TARGET})
target_compile_definitions(inputcommon PRIVATE "CIFACE_USE_SDL=1")
else()
message(STATUS "SDL NOT found, disabling SDL input")
endif()
endif()