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
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
${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}/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
)
+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}
- -o ${CMAKE_CURRENT_BINARY_DIR}/lugaru_resource.obj
+ -o ${CMAKE_CURRENT_BINARY_DIR}/Lugaru.res
-i${SRCDIR}/Lugaru.rc
DEPENDS ${SRCDIR}/Lugaru.rc
)
+ set(LUGARU_OBJS "Lugaru.res")
endif(WIN32)
if(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)
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})