X-Git-Url: https://git.jsancho.org/?p=lugaru.git;a=blobdiff_plain;f=CMakeLists.txt;h=f65500d8c1ce7f86488d5f787aef7a70dd31aeb4;hp=ac908f06e863fa15900fceb596bdde5ca3cfca1b;hb=refs%2Fheads%2Fimprovements;hpb=848100cb2fe6ac3851b481a08876dc85129b0208 diff --git a/CMakeLists.txt b/CMakeLists.txt index ac908f0..f65500d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,11 +16,33 @@ if(UNIX AND NOT APPLE) endif() +### CMake config + +if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE RelWithDebInfo) +endif(NOT CMAKE_BUILD_TYPE) +message(STATUS "CMake build type: ${CMAKE_BUILD_TYPE}") + +set(CMAKE_CXX_FLAGS "-Wall -Wextra -Wno-parentheses -pedantic --std=gnu++11 ${CMAKE_CXX_FLAGS}") + +if(APPLE) + set(CMAKE_OSX_ARCHITECTURES "x86_64" CACHE STRING "Build architectures for OSX") + set(CMAKE_OSX_DEPLOYMENT_TARGET "10.11" CACHE STRING + "Minimum OS X version to target for deployment (at runtime); newer APIs weak linked. Set to empty string for default value") + set(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX10.11.sdk" CACHE PATH + "The product will be built against the headers and libraries located inside the indicated SDK.") +endif(APPLE) + +if(LINUX) + option(SYSTEM_INSTALL "Enable system-wide installation, with hardcoded data directory defined with CMAKE_INSTALL_DATADIR" OFF) +endif(LINUX) + + ### Version # Version for the current (stable) or next (development) release set(LUGARU_VERSION_MAJOR 1) -set(LUGARU_VERSION_MINOR 2) +set(LUGARU_VERSION_MINOR 3) set(LUGARU_VERSION_PATCH 0) # MAJOR.MINOR, or MAJOR.MINOR.PATCH if PATCH != 0 @@ -65,30 +87,6 @@ message(STATUS "Version string: ${LUGARU_VERSION_STRING}") configure_file(${SRCDIR}/Version.hpp.in ${SRCDIR}/Version.hpp ESCAPE_QUOTES @ONLY) -### CMake config - -if(NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE RelWithDebInfo) -endif(NOT CMAKE_BUILD_TYPE) -message(STATUS "CMake build type: ${CMAKE_BUILD_TYPE}") - -set(CMAKE_CXX_FLAGS "-Wall -Wextra -Wno-parentheses -pedantic --std=gnu++11 ${CMAKE_CXX_FLAGS}") - -if(APPLE) - set(CMAKE_OSX_ARCHITECTURES "x86_64" CACHE STRING "Build architectures for OSX") - set(CMAKE_OSX_DEPLOYMENT_TARGET "10.11" CACHE STRING - "Minimum OS X version to target for deployment (at runtime); newer APIs weak linked. Set to empty string for default value") - set(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX10.11.sdk" CACHE PATH - "The product will be built against the headers and libraries located inside the indicated SDK.") -endif(APPLE) - -if(LINUX) - option(SYSTEM_INSTALL "Enable system-wide installation, with hardcoded data directory defined with CMAKE_INSTALL_DATADIR" OFF) -endif(LINUX) - -set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMake/Modules/") - - ### Sources set(LUGARU_SRCS @@ -118,7 +116,10 @@ set(LUGARU_SRCS ${SRCDIR}/Menu/Menu.cpp ${SRCDIR}/Objects/Object.cpp ${SRCDIR}/Objects/Person.cpp + ${SRCDIR}/Objects/PersonType.cpp ${SRCDIR}/Objects/Weapons.cpp + ${SRCDIR}/Platform/PlatformUnix.cpp + ${SRCDIR}/Platform/PlatformWindows.cpp ${SRCDIR}/User/Account.cpp ${SRCDIR}/User/Settings.cpp ${SRCDIR}/Utils/Folders.cpp @@ -163,7 +164,9 @@ set(LUGARU_H ${SRCDIR}/Menu/Menu.hpp ${SRCDIR}/Objects/Object.hpp ${SRCDIR}/Objects/Person.hpp + ${SRCDIR}/Objects/PersonType.hpp ${SRCDIR}/Objects/Weapons.hpp + ${SRCDIR}/Platform/Platform.hpp ${SRCDIR}/Thirdparty/optionparser.h ${SRCDIR}/User/Account.hpp ${SRCDIR}/User/Settings.hpp @@ -177,35 +180,15 @@ set(LUGARU_H ) -if(UNIX) - set(LUGARU_SRCS - ${LUGARU_SRCS} - ${SRCDIR}/MacCompatibility.cpp - ) - set(LUGARU_H - ${LUGARU_H} - ${SRCDIR}/MacCompatibility.hpp - ) -endif(UNIX) - +set(LUGARU_OBJS "") if(WIN32) - add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lugaru_resource.obj + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/Lugaru.res COMMAND ${CMAKE_RC_COMPILER} - -I${SRCDIR}/win-res - -o ${CMAKE_CURRENT_BINARY_DIR}/lugaru_resource.obj - -i${SRCDIR}/win-res/Lugaru.rc - DEPENDS ${SRCDIR}/win-res/Lugaru.rc + -o ${CMAKE_CURRENT_BINARY_DIR}/Lugaru.res + -i${SRCDIR}/Lugaru.rc + DEPENDS ${SRCDIR}/Lugaru.rc ) - - # FIXME: get rid of this. - set(LUGARU_SRCS - ${LUGARU_SRCS} - ${SRCDIR}/WinDefs.cpp) - - set(LUGARU_H - ${LUGARU_H} - ${SRCDIR}/WinDefs.hpp - ${SRCDIR}/win-res/resource.hpp) + set(LUGARU_OBJS "Lugaru.res") endif(WIN32) if(APPLE) @@ -234,32 +217,25 @@ endif(APPLE) find_package(PNG REQUIRED) find_package(JPEG REQUIRED) -find_package(ZLIB REQUIRED) -find_package(OggVorbis REQUIRED) + +pkg_check_modules(VORBISFILE vorbisfile REQUIRED) include_directories( ${OPENAL_INCLUDE_DIR} ${JPEG_INCLUDE_DIR} ${PNG_INCLUDE_DIR} - ${ZLIB_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR} ${SDL2_INCLUDE_DIRS} ${VORBISFILE_INCLUDE_DIR} - ${OGG_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/Source ) -set(LUGARU_LIBS ${OPENAL_LIBRARY} ${PNG_LIBRARY} ${JPEG_LIBRARY} ${ZLIB_LIBRARIES} ${SDL2_LIBRARIES} ${OPENGL_LIBRARIES} ${VORBISFILE_LIBRARY} ${OGG_LIBRARY} ${PLATFORM_LIBS}) +set(LUGARU_LIBS ${OPENAL_LIBRARY} ${PNG_LIBRARY} ${JPEG_LIBRARY} ${SDL2_LIBRARIES} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} ${VORBISFILE_LIBRARIES} ${PLATFORM_LIBS}) ### Definitions -if(WIN32) - add_executable(lugaru ${LUGARU_SRCS} ${LUGARU_H} lugaru_resource.obj) -else(WIN32) - add_executable(lugaru ${LUGARU_SRCS} ${LUGARU_H}) -endif(WIN32) - +add_executable(lugaru ${LUGARU_SRCS} ${LUGARU_H} ${LUGARU_OBJS}) target_link_libraries(lugaru ${LUGARU_LIBS}) if(WIN32) @@ -326,10 +302,10 @@ if(LINUX) install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/lugaru DESTINATION ${CMAKE_INSTALL_BINDIR}) # Trailing '/' is significant, it installs and _renames_ Data/ as the destination folder install(DIRECTORY ${CMAKE_SOURCE_DIR}/Data/ DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}) - install(FILES ${CMAKE_SOURCE_DIR}/Dist/lugaru.appdata.xml DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/appdata) - install(FILES ${CMAKE_SOURCE_DIR}/Dist/lugaru.desktop DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications) - install(FILES ${CMAKE_SOURCE_DIR}/Dist/lugaru.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/128x128/apps) - install(FILES ${CMAKE_SOURCE_DIR}/Dist/lugaru.6 DESTINATION ${CMAKE_INSTALL_MANDIR}/man6) + install(FILES ${CMAKE_SOURCE_DIR}/Dist/Linux/lugaru.appdata.xml DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/appdata) + install(FILES ${CMAKE_SOURCE_DIR}/Dist/Linux/lugaru.desktop DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications) + install(FILES ${CMAKE_SOURCE_DIR}/Dist/Linux/lugaru.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/128x128/apps) + install(FILES ${CMAKE_SOURCE_DIR}/Dist/Linux/lugaru.6 DESTINATION ${CMAKE_INSTALL_MANDIR}/man6) else(SYSTEM_INSTALL) message("You are building Lugaru without having enabled the SYSTEM_INSTALL option. It will default to looking for the data in the 'Data' directory next to the binary.") install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/lugaru DESTINATION ${CMAKE_INSTALL_PREFIX})