# Project name PROJECT(Wormux) SET(WORMUX_MAJOR "0") SET(WORMUX_MINOR "8") SET(WORMUX_PATCH "svn") SET(VERSION "${WORMUX_MAJOR}.${WORMUX_MINOR}${WORMUX_PATCH}") # Some aliases of cmake variables IF(BUILD) SET(BUILD CACHE STRING "Abbreviation for CMAKE_BUILD_TYPE.") SET(CMAKE_BUILD_TYPE ${BUILD}) ENDIF(BUILD) IF(PREFIX) SET(PREFIX CACHE PATH "Abbreviation for CMAKE_INSTALL_PREFIX.") SET(CMAKE_INSTALL_PREFIX ${PREFIX}) ENDIF(PREFIX) # Set some global variables SET(WORMUX_CFLAGS "-Wall") # additional compile flags for wormux SET(WORMUX_LDFLAGS "") # additional linking flags for wormux SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) IF(UNIX AND NOT WIN32) SET(INSTALL_DATADIR ${CMAKE_INSTALL_PREFIX}/share/wormux) SET(INSTALL_LOCALEDIR ${CMAKE_INSTALL_PREFIX}/share/locale) SET(FONT_FILE ${INSTALL_DATADIR}/font/DejaVuSans.ttf) SET(DATA_DESTINATION "share/wormux") SET(PO_DESTINATION "share/locale") SET(BIN_DESTINATION "bin") ELSE(UNIX AND NOT WIN32) SET(INSTALL_DATADIR data) SET(INSTALL_LOCALEDIR locale) SET(FONT_FILE data/font/DejaVuSans.ttf) SET(DATA_DESTINATION "data") SET(PO_DESTINATION "locale") SET(BIN_DESTINATION ".") ENDIF(UNIX AND NOT WIN32) # Optional package CPack INCLUDE(CPackConfig OPTIONAL) INCLUDE(XmlValidityTest OPTIONAL) # Use "make run" and "make debug" to run/debug wormux ADD_CUSTOM_TARGET(run WORMUX_DATADIR=${PROJECT_SOURCE_DIR}/data WORMUX_FONT_PATH=${PROJECT_SOURCE_DIR}/data/font/DejaVuSans.ttf src/wormux) ADD_CUSTOM_TARGET(debug WORMUX_DATADIR=${PROJECT_SOURCE_DIR}/data WORMUX_FONT_PATH=${PROJECT_SOURCE_DIR}/data/font/DejaVuSans.ttf gdb src/wormux) # Required libraries FIND_PACKAGE(Gettext REQUIRED) FIND_PACKAGE(SDL REQUIRED) FIND_PACKAGE(SDL_image REQUIRED) FIND_PACKAGE(SDL_mixer REQUIRED) FIND_PACKAGE(SDL_ttf REQUIRED) FIND_PACKAGE(SDL_gfx REQUIRED) FIND_PACKAGE(SDL_net REQUIRED) FIND_PACKAGE(libxml++ REQUIRED) FIND_PACKAGE(PNG REQUIRED) FIND_PACKAGE(CURL REQUIRED) ADD_DEFINITIONS(${LIBXMLPP_CFLAGS}) # config.h and compile-flags CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/src/config.h.cmake ${PROJECT_SOURCE_DIR}/src/config.h) ADD_DEFINITIONS(-DHAVE_CONFIG_H) ADD_DEFINITIONS(-DINSTALL_DATADIR=\\"${INSTALL_DATADIR}\\") ADD_DEFINITIONS(-DINSTALL_LOCALEDIR=\\"${INSTALL_LOCALEDIR}\\") ADD_DEFINITIONS(-DFONT_FILE=\\"${FONT_FILE}\\") ADD_DEFINITIONS(-DPACKAGE_VERSION=\\"${VERSION}\\") IF(NOT WIN32) SET(WORMUX_CFLAGS "-Werror ${WORMUX_CFLAGS}") ENDIF(NOT WIN32) IF(CMAKE_BUILD_TYPE MATCHES "Debug" OR CMAKE_BUILD_TYPE MATCHES "RelWithDebInfo") ADD_DEFINITIONS(-DDEBUG) IF(PROFILE) SET(WORMUX_CFLAGS "-pg ${WORMUX_CFLAGS}") SET(WORMUX_LDFLAGS "-pg ${WORMUX_LDFLAGS}") ENDIF(PROFILE) ENDIF(CMAKE_BUILD_TYPE MATCHES "Debug" OR CMAKE_BUILD_TYPE MATCHES "RelWithDebInfo") # Subdirectories ADD_SUBDIRECTORY(src) ADD_SUBDIRECTORY(po) # install data/ # for CMake > 2.4.3 use newer INSTALL(DIRECTORY ...) function IF(CMAKE_MAJOR_VERSION MATCHES "2" AND CMAKE_MINOR_VERSION MATCHES "4" AND CMAKE_PATCH_VERSION GREATER "3") INSTALL(DIRECTORY data/ DESTINATION ${DATA_DESTINATION} FILE_PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ DIRECTORY_PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE PATTERN ".svn" EXCLUDE PATTERN "Makefile.am" EXCLUDE PATTERN "wormux.desktop" EXCLUDE PATTERN ".dtd" EXCLUDE ) # for CMake <= 2.4.3 use INSTALL(FILES ...) / INSTALL_FILES(...) ELSE(CMAKE_MAJOR_VERSION MATCHES "2" AND CMAKE_MINOR_VERSION MATCHES "4" AND CMAKE_PATCH_VERSION GREATER "3") INCLUDE(InstallData) FOREACH(_data_file ${DATA_FILES}) GET_FILENAME_COMPONENT(_path ${_data_file} PATH) IF(CMAKE_MAJOR_VERSION MATCHES "2" AND CMAKE_MINOR_VERSION MATCHES "4") INSTALL(FILES data/${_data_file} DESTINATION share/wormux/${_path}) ENDIF(CMAKE_MAJOR_VERSION MATCHES "2" AND CMAKE_MINOR_VERSION MATCHES "4") IF(CMAKE_MAJOR_VERSION MATCHES "2" AND CMAKE_MINOR_VERSION MATCHES "2") INSTALL_FILES(/share/wormux/${_path} FILES data/${_data_file}) ENDIF(CMAKE_MAJOR_VERSION MATCHES "2" AND CMAKE_MINOR_VERSION MATCHES "2") ENDFOREACH(_data_file ${DATA_FILES}) ENDIF(CMAKE_MAJOR_VERSION MATCHES "2" AND CMAKE_MINOR_VERSION MATCHES "4" AND CMAKE_PATCH_VERSION GREATER "3") # Install desktop file and icon IF(UNIX) IF(CMAKE_MAJOR_VERSION MATCHES "2" AND CMAKE_MINOR_VERSION MATCHES "4") INSTALL(FILES data/wormux.desktop DESTINATION share/applications) INSTALL(FILES data/wormux_128x128.png DESTINATION share/pixmaps) ENDIF(CMAKE_MAJOR_VERSION MATCHES "2" AND CMAKE_MINOR_VERSION MATCHES "4") IF(CMAKE_MAJOR_VERSION MATCHES "2" AND CMAKE_MINOR_VERSION MATCHES "2") INSTALL_FILES(/share/applications FILES data/wormux.desktop) INSTALL_FILES(/share/pixmaps FILES data/wormux_128x128.png) ENDIF(CMAKE_MAJOR_VERSION MATCHES "2" AND CMAKE_MINOR_VERSION MATCHES "2") ENDIF(UNIX)