2010-06-22 13:30:36 +00:00
|
|
|
# Check that people use the good file
|
|
|
|
if(NOT TOP_CMAKE_WAS_SOURCED)
|
|
|
|
message(FATAL_ERROR "
|
|
|
|
You did not 'cmake' the good CMakeLists.txt file. Use the one in the top dir.
|
|
|
|
It is advice to delete all wrongly generated cmake stuff => CMakeFiles & CMakeCache.txt")
|
|
|
|
endif(NOT TOP_CMAKE_WAS_SOURCED)
|
|
|
|
|
2010-05-04 10:17:47 +00:00
|
|
|
|
|
|
|
# plugin name
|
|
|
|
set(zeropadName zeropad)
|
|
|
|
|
2010-06-03 15:12:29 +00:00
|
|
|
set(CommonFlags
|
|
|
|
-Wall
|
|
|
|
-fpic
|
|
|
|
)
|
|
|
|
|
|
|
|
set(OptimizationFlags
|
|
|
|
-O2
|
2010-06-05 11:56:52 +00:00
|
|
|
-DNDEBUG
|
2010-06-03 15:12:29 +00:00
|
|
|
-fomit-frame-pointer
|
|
|
|
)
|
|
|
|
|
|
|
|
|
2010-05-04 10:17:47 +00:00
|
|
|
# Debug - Build
|
|
|
|
if(CMAKE_BUILD_TYPE STREQUAL Debug)
|
|
|
|
# add defines
|
2010-06-03 15:12:29 +00:00
|
|
|
add_definitions(${CommonFlags} -g)
|
2010-05-04 10:17:47 +00:00
|
|
|
endif(CMAKE_BUILD_TYPE STREQUAL Debug)
|
|
|
|
|
|
|
|
# Devel - Build
|
|
|
|
if(CMAKE_BUILD_TYPE STREQUAL Devel)
|
|
|
|
# add defines
|
2010-06-03 15:12:29 +00:00
|
|
|
add_definitions(${CommonFlags} ${OptimizationFlags})
|
2010-05-04 10:17:47 +00:00
|
|
|
endif(CMAKE_BUILD_TYPE STREQUAL Devel)
|
|
|
|
|
|
|
|
# Release - Build
|
|
|
|
if(CMAKE_BUILD_TYPE STREQUAL Release)
|
|
|
|
# add defines
|
2010-06-03 15:12:29 +00:00
|
|
|
add_definitions(${CommonFlags} ${OptimizationFlags})
|
2010-05-04 10:17:47 +00:00
|
|
|
endif(CMAKE_BUILD_TYPE STREQUAL Release)
|
|
|
|
|
|
|
|
# zeropad sources
|
|
|
|
set(zeropadSources
|
|
|
|
analog.cpp
|
|
|
|
joystick.cpp
|
|
|
|
keyboard.cpp
|
|
|
|
zeropad.cpp)
|
|
|
|
|
|
|
|
# zeropad headers
|
|
|
|
set(zeropadHeaders
|
|
|
|
analog.h
|
|
|
|
bitwise.h
|
|
|
|
joystick.h
|
|
|
|
keyboard.h
|
|
|
|
zeropad.h)
|
|
|
|
|
|
|
|
# zeropad Linux sources
|
|
|
|
set(zeropadLinuxSources
|
|
|
|
Linux/gui.cpp
|
|
|
|
Linux/linux.cpp
|
|
|
|
# Linux/callbacks.c
|
|
|
|
Linux/interface.c
|
|
|
|
Linux/support.c)
|
|
|
|
|
|
|
|
# zeropad Linux headers
|
|
|
|
set(zeropadLinuxHeaders
|
|
|
|
Linux/callbacks.h
|
|
|
|
Linux/interface.h
|
|
|
|
Linux/linux.h
|
|
|
|
Linux/support.h)
|
|
|
|
|
|
|
|
# zeropad Windows sources
|
|
|
|
set(zeropadWindowsSources
|
|
|
|
Windows/gui.cpp
|
|
|
|
Windows/win.cpp)
|
|
|
|
|
|
|
|
# zeropad Windows headers
|
|
|
|
set(zeropadWindowsHeaders
|
|
|
|
Windows/resource.h
|
|
|
|
Windows/win.h)
|
|
|
|
|
|
|
|
# add additional include directories
|
|
|
|
include_directories(.
|
|
|
|
Linux)
|
|
|
|
|
|
|
|
# add library
|
|
|
|
add_library(${zeropadName} SHARED
|
|
|
|
${zeropadSources}
|
|
|
|
${zeropadHeaders}
|
|
|
|
${zeropadLinuxSources}
|
|
|
|
${zeropadLinuxHeaders})
|
|
|
|
|
|
|
|
# set output directory
|
|
|
|
set_target_properties(${zeropadName} PROPERTIES
|
|
|
|
LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin/plugins)
|
|
|
|
|
|
|
|
# link target with SDL
|
|
|
|
target_link_libraries(${zeropadName} ${SDL_LIBRARY})
|