mirror of
https://github.com/mupen64plus/mupen64plus-input-sdl.git
synced 2025-04-02 10:52:40 -04:00
105 lines
2.6 KiB
CMake
105 lines
2.6 KiB
CMake
cmake_minimum_required(VERSION 2.8.11)
|
|
project(mupen64plus-input-sdl)
|
|
|
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
|
set(M64_APIDIR "${CMAKE_SOURCE_DIR}/../../../mupen64plus-core/src/api")
|
|
|
|
message("${CMAKE_SOURCE_DIR}/../../src/")
|
|
|
|
# State directories for modules and binaries
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)
|
|
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMake)
|
|
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMake/Find)
|
|
|
|
set(CMAKE_CC_FLAGS "-ffast-math -fno-strict-aliasing -fvisibility=hidden -D_GNU_SOURCE=1")
|
|
|
|
set(CMAKE_CXX_FLAGS "-pthread -fvisibility-inlines-hidden")
|
|
|
|
set(SRCS
|
|
${CMAKE_SOURCE_DIR}/../../src/autoconfig.c
|
|
${CMAKE_SOURCE_DIR}/../../src/config.c
|
|
${CMAKE_SOURCE_DIR}/../../src/plugin.c
|
|
${CMAKE_SOURCE_DIR}/../../src/sdl_key_converter.c
|
|
)
|
|
|
|
if(WIN32)
|
|
set(SRCS
|
|
${SRCS}
|
|
${CMAKE_SOURCE_DIR}/../../src/osal_dynamiclib_win32.c
|
|
)
|
|
else()
|
|
set(SRCS
|
|
${SRCS}
|
|
${CMAKE_SOURCE_DIR}/../../src/osal_dynamiclib_unix.c
|
|
)
|
|
endif()
|
|
|
|
# Find dependencies
|
|
find_package(PNG REQUIRED)
|
|
if(NOT ZLIB_FOUND)
|
|
include(ZLIB)
|
|
message(FATAL_ERROR "Package zlib is required, but not found!")
|
|
endif(NOT ZLIB_FOUND)
|
|
|
|
find_package(PNG REQUIRED)
|
|
if(NOT PNG_FOUND)
|
|
include(PNG)
|
|
message(FATAL_ERROR "Package libpng is required, but not found!")
|
|
endif(NOT PNG_FOUND)
|
|
|
|
find_package(SDL2 REQUIRED)
|
|
if(NOT SDL2_FOUND)
|
|
include(SDL2)
|
|
message(FATAL_ERROR "Package SDL2 is required, but not found!")
|
|
endif(NOT SDL2_FOUND)
|
|
|
|
find_package(OpenGL REQUIRED)
|
|
if(NOT OpenGL_FOUND)
|
|
message(FATAL_ERROR "Package OpenGL is required, but not found!")
|
|
endif(NOT OpenGL_FOUND)
|
|
|
|
find_package(Freetype REQUIRED)
|
|
if(NOT FREETYPE_FOUND)
|
|
message(FATAL_ERROR "Package FreeType is required, but not found!")
|
|
endif(NOT FREETYPE_FOUND)
|
|
|
|
# Specify include directories
|
|
include_directories(
|
|
${PNG_INCLUDE_DIR}
|
|
${OpenGL_INCLUDE_DIR}
|
|
${SDL2_INCLUDE_DIR}
|
|
${FREETYPE_INCLUDE_DIR_ft2build}
|
|
${FREETYPE_INCLUDE_DIR_freetype2}
|
|
${M64_APIDIR}
|
|
${CMAKE_SOURCE_DIR}/../../src/
|
|
)
|
|
# Create the binary
|
|
add_library(${CMAKE_PROJECT_NAME} SHARED ${SRCS})
|
|
|
|
# Link the libraries
|
|
# add_dependencies(${CMAKE_PROJECT_NAME} ${SDL2_LIBRARIES})
|
|
|
|
if(WIN32)
|
|
target_link_libraries(${CMAKE_PROJECT_NAME}
|
|
${PNG_LIBRARY}
|
|
${OPENGL_LIBRARIES}
|
|
${SDL2_LIBRARY}
|
|
${ZLIB_LIBRARY}
|
|
)
|
|
elseif(APPLE)
|
|
target_link_libraries(${CMAKE_PROJECT_NAME}
|
|
${PNG_LIBRARY}
|
|
${OPENGL_LIBRARIES}
|
|
${SDL2_LIBRARY}
|
|
${ZLIB_LIBRARY}
|
|
)
|
|
else()
|
|
target_link_libraries(${CMAKE_PROJECT_NAME}
|
|
${PNG_LIBRARY}
|
|
${OPENGL_LIBRARIES}
|
|
${SDL2_LIBRARY}
|
|
${ZLIB_LIBRARY}
|
|
${FREETYPE_LIBRARIES}
|
|
dl
|
|
)
|
|
endif()
|