# sources SET(INSTEAD_SRCS SDL_anigif.c SDL_gfxBlitFunc.c SDL_rotozoom.c cache.c config.c game.c graphics.c idf.c input.c instead.c ioapi.c lfs.c main.c menu.c sound.c themes.c tinymt32.c unpack.c unzip.c util.c list.c ) # platform-specific sources IF(APPLE) SET(INSTEAD_SRCS ${INSTEAD_SRCS} macosx.m) ADD_DEFINITIONS(-Dunix) ELSEIF(WIN32 AND WINCE) SET(INSTEAD_SRCS ${INSTEAD_SRCS} wince.c iowin32.c) ELSEIF(WIN32 AND NOT WINCE) SET(INSTEAD_SRCS ${INSTEAD_SRCS} windows.c iowin32.c) ELSEIF(UNIX) SET(INSTEAD_SRCS ${INSTEAD_SRCS} unix.c) ADD_DEFINITIONS(-Dunix) ELSE(APPLE) MESSAGE(FATAL_ERROR "Your platform is not supported yet, sorry") ENDIF(APPLE) # flags ADD_DEFINITIONS( -DVERSION=\"${INSTEAD_VERSION}\" -D_USE_UNPACK -Wall ) INCLUDE(CheckCXXCompilerFlag) CHECK_CXX_COMPILER_FLAG(-Wextra WEXTRA_FLAG_SUPPORTED) CHECK_CXX_COMPILER_FLAG(-Wno-unused-parameter WNO_UNUSED_PARAMETER_FLAG_SUPPORTED) IF(WEXTRA_FLAG_SUPPORTED) ADD_DEFINITIONS(-Wextra) ENDIF(WEXTRA_FLAG_SUPPORTED) IF(WNO_UNUSED_PARAMETER_FLAG_SUPPORTED) ADD_DEFINITIONS(-Wno-unused-parameter) ENDIF(WNO_UNUSED_PARAMETER_FLAG_SUPPORTED) IF(SYSTEMWIDE) # Systemwide installation, global data paths ADD_DEFINITIONS( -DLANG_PATH=\"${CMAKE_INSTALL_PREFIX}/${LANGDIR}/\" -DSTEAD_PATH=\"${CMAKE_INSTALL_PREFIX}/${STEADDIR}/\" -DGAMES_PATH=\"${CMAKE_INSTALL_PREFIX}/${GAMESDIR}/\" -DTHEMES_PATH=\"${CMAKE_INSTALL_PREFIX}/${THEMESDIR}/\" -DICON_PATH=\"${CMAKE_INSTALL_PREFIX}/${ICONDIR}/\" ) ELSEIF(STANDALONE) # Standalone installation, local data paths ADD_DEFINITIONS( -DLANG_PATH=\"lang/\" -DSTEAD_PATH=\"stead/\" -DGAMES_PATH=\"games/\" -DTHEMES_PATH=\"themes/\" -DICON_PATH=\"icon/\" -D_LOCAL_APPDATA ) ELSE(SYSTEMWIDE) # Neither, data paths point to source tree ADD_DEFINITIONS( -DLANG_PATH=\"${CMAKE_SOURCE_DIR}/lang/\" -DSTEAD_PATH=\"${CMAKE_SOURCE_DIR}/stead/\" -DGAMES_PATH=\"${CMAKE_SOURCE_DIR}/games/\" -DTHEMES_PATH=\"${CMAKE_SOURCE_DIR}/themes/\" -DICON_PATH=\"${CMAKE_SOURCE_DIR}/icon/\" ) ENDIF(SYSTEMWIDE) # depends FIND_PACKAGE(Lua51 REQUIRED) FIND_PACKAGE(ZLIB REQUIRED) FIND_LIBRARY(MATH_LIBRARY m) INCLUDE_DIRECTORIES( ${ZLIB_INCLUDE_DIRS} ${LUA_INCLUDE_DIR} ) SET(INSTEAD_LIBS ${ZLIB_LIBRARIES} ${LUA_LIBRARIES} ${MATH_LIBRARY} ) IF(WITH_SDL2) FIND_PACKAGE(SDL2 REQUIRED) FIND_PACKAGE(SDL2_mixer REQUIRED) FIND_PACKAGE(SDL2_image REQUIRED) FIND_PACKAGE(SDL2_ttf REQUIRED) INCLUDE_DIRECTORIES( ${SDL2_INCLUDE_DIR} ${SDL2MIXER_INCLUDE_DIR} ${SDL2IMAGE_INCLUDE_DIR} ${SDL2TTF_INCLUDE_DIR} ) LIST(APPEND INSTEAD_LIBS ${SDL2_LIBRARY} ${SDL2MIXER_LIBRARY} ${SDL2IMAGE_LIBRARY} ${SDL2TTF_LIBRARY} ) ELSE(WITH_SDL2) FIND_PACKAGE(SDL REQUIRED) FIND_PACKAGE(SDL_mixer REQUIRED) FIND_PACKAGE(SDL_image REQUIRED) FIND_PACKAGE(SDL_ttf REQUIRED) INCLUDE_DIRECTORIES( ${SDL_INCLUDE_DIR} ${SDLMIXER_INCLUDE_DIR} ${SDLIMAGE_INCLUDE_DIR} ${SDLTTF_INCLUDE_DIR} ) LIST(APPEND INSTEAD_LIBS ${SDL_LIBRARY} ${SDLMIXER_LIBRARY} ${SDLIMAGE_LIBRARY} ${SDLTTF_LIBRARY} ) ENDIF(WITH_SDL2) IF(WITH_ICONV) FIND_PACKAGE(Iconv REQUIRED) ADD_DEFINITIONS(-D_HAVE_ICONV) INCLUDE_DIRECTORIES(${ICONV_INCLUDE_DIR}) SET(INSTEAD_LIBS ${INSTEAD_LIBS} ${ICONV_LIBRARY}) ENDIF(WITH_ICONV) IF(WITH_GTK2) FIND_PACKAGE(GTK2 REQUIRED) ADD_DEFINITIONS(-D_USE_GTK -D_USE_BROWSE ${GTK2_DEFINITIONS}) INCLUDE_DIRECTORIES(${GTK2_INCLUDE_DIRS}) SET(INSTEAD_LIBS ${INSTEAD_LIBS} ${GTK2_LIBRARIES}) ELSEIF(WITH_GTK3) FIND_PACKAGE(GTK3 REQUIRED) ADD_DEFINITIONS(-D_USE_GTK -D_USE_BROWSE) INCLUDE_DIRECTORIES(${GTK3_INCLUDE_DIRS}) SET(INSTEAD_LIBS ${INSTEAD_LIBS} ${GTK3_LIBRARIES}) ENDIF(WITH_GTK2) # targets ADD_EXECUTABLE(sdl-instead ${INSTEAD_SRCS}) TARGET_LINK_LIBRARIES(sdl-instead ${INSTEAD_LIBS}) # install INCLUDE(InstallSymlink) IF(SYSTEMWIDE) INSTALL(TARGETS sdl-instead DESTINATION ${BINDIR}) INSTALL_SYMLINK(sdl-instead instead${CMAKE_EXECUTABLE_SUFFIX} ${BINDIR}) ELSEIF(STANDALONE) INSTALL(TARGETS sdl-instead DESTINATION ${STANDALONEDIR}) INSTALL_SYMLINK(sdl-instead instead${CMAKE_EXECUTABLE_SUFFIX} ${STANDALONEDIR}) ENDIF(SYSTEMWIDE)