Skip to content

Commit

Permalink
The CMakeLists.txt for 7b20e5c.
Browse files Browse the repository at this point in the history
  • Loading branch information
Rene Jochum committed Jul 28, 2011
1 parent 7b20e5c commit dd96412
Showing 1 changed file with 108 additions and 68 deletions.
176 changes: 108 additions & 68 deletions tools/map/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,80 +1,110 @@
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)

project(maptools)
cmake_minimum_required (VERSION 2.8)

project (maptools)

# Options
option (STABS_DEBUG_SYMBOLS "Stabs debugging symbols" FALSE)
option (QT_IS_STATIC "Using static Qt" FALSE)

# Required warzone components
find_path(WZ_SOURCE_DIR lib/framework/wzglobal.h
HINTS "${CMAKE_SOURCE_DIR}/../.."
DOC "Warzone2100 source root directory path"
)

find_path(WZ_BUILD_DIR config.h
HINTS "${CMAKE_SOURCE_DIR}/../.."
DOC "Path to directory containing the config.h file created by warzone's build configuration step")

# Uncomment when we actually need to link to the framework lib
#if (NOT WZ_FRAMEWORK_LIBRARY)
# find_library(WZ_FRAMEWORK_LIBRARY name framework)
#endif ()
#set (WZ_FRAMEWORK_LIBRARY "${WZ_FRAMEWORK_LIBRARY}" CACHE FILEPATH "Path to Warzone's framework library")

#if (NOT WZ_FRAMEWORK_LIBRARY)
# message (SEND_ERROR "Warzone's framework library not found")
#endif ()
if (NOT WZ_BUILD_DIR)
message (SEND_ERROR "Warzone's config.h not found")
endif ()
if (NOT WZ_SOURCE_DIR)
message (SEND_ERROR "Warzone's framework library include dir not found")
else ()
# HACK to allow including like "lib/framework/whatever.h"
set (WZ_FRAMEWORK_INCLUDE_DIRS ${WZ_SOURCE_DIR} ${WZ_BUILD_DIR} CACHE INTERNAL "")
endif ()

# compile in debug mode
if (NOT CMAKE_BUILD_TYPE)
set (CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING
"Choose the type of build, options are: None Debug Debug2 Debug3 Release RelWithDebInfo MinSizeRel."
FORCE)
if (NOT APPLE)
add_definitions(-DHAVE_CONFIG_H)
endif ()

# For Static builds
IF(LIBTYPE STREQUAL "STATIC")
ADD_DEFINITIONS("-DQT_STATIC")
ADD_DEFINITIONS("-DQT_NODLL")
SET(CMAKE_EXE_LINKER_FLAGS -static)
SET(QT_IS_STATIC 1)
SET(QT_CONFIG "static")
find_package (Qt4 REQUIRED)
include (${QT_USE_FILE})
add_definitions (${QT_DEFINITIONS})

find_package(ZLIB REQUIRED)
find_package(JPEG REQUIRED)
find_package(TIFF REQUIRED)
if (QT_IS_STATIC)
add_definitions ("-DQT_STATIC")
add_definitions ("-DQT_NODLL")
set (QT_CONFIG "static")

SET(QT_DEPS ${JPEG_LIBRARY} ${TIFF_LIBRARY} "mng" "lcms")
endif()
# We need to use pkgconfig to get the linker flags for static qt
find_package (PkgConfig)
pkg_check_modules (_QT REQUIRED QtCore QtGui)
set (QT_LIBRARIES ${_QT_STATIC_LIBRARIES})
endif ()

find_package(Qt4 REQUIRED)
include(${QT_USE_FILE})
add_definitions(${QT_DEFINITIONS})
IF("${CMAKE_BUILD_TYPE}" MATCHES "^Rel.*")
ADD_DEFINITIONS ("-DQT_NO_DEBUG")
ENDIF()

find_package(PNG 1.5 REQUIRED)
find_package(PhysFS 2 REQUIRED)
find_package (PNG 1.4 REQUIRED)
find_package (PhysFS 2 REQUIRED)

# Ugly OS-X Fix, should find a better way.
IF(${CMAKE_SYSTEM_NAME} MATCHES "^Darwin")
SET(QT_QTCORE_LIBRARY "-framework QtCore")
ENDIF()
set (CMAKE_USE_PTHREADS_INIT TRUE)
find_package (Threads)

IF("${CMAKE_BUILD_TYPE}" MATCHES "^Rel.*")
ADD_DEFINITIONS("-DQT_NO_DEBUG")
ENDIF()
# set CMAKE_BUILD_TYPE to default
if (NOT CMAKE_BUILD_TYPE)
set (CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING
"Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
FORCE)
endif ()

set(DEBUG_WARNINGS "-Wall -Wno-sign-compare")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsingle-precision-constant -frounding-math")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${IEEE_FP_FLAG} -pipe -fno-strict-aliasing ${VISIBILITY_HIDDEN} ${VISIBILITY_INLINES_HIDDEN}")
add_definitions(-DSTREFLOP_SSE)
if (UNIX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
if (CMAKE_COMPILER_IS_GNUCXX)
# Set our own default flags at first run.
if (NOT CONFIGURED)
set (DEBUG_WARNINGS "-Wall -Wno-sign-compare")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pipe")

if (CMAKE_USE_PTHREADS_INIT)
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
endif ()

set (CMAKE_CXX_FLAGS_DEBUG "-O1 ${DEBUG_WARNINGS} -DDEBUG -D_DEBUG -DNO_CATCH_EXCEPTIONS")
set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -DNDEBUG")
set (CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG")
set (CMAKE_CXX_FLAGS_PROFILE "-O2 -pg ${DEBUG_WARNINGS} -DNDEBUG")

set (CMAKE_MODULE_LINKER_FLAGS_PROFILE "-pg")
set (CMAKE_SHARED_LINKER_FLAGS_PROFILE "-pg")

if (STABS_DEBUG_SYMBOLS)
set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -gstabs")
set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -gstabs")
else ()
set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -ggdb")
set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -g")
endif ()
endif ()
endif ()
set(CMAKE_CXX_FLAGS_DEBUG "${CXX_FLAGS_DEBUG_ADDITIONAL} -O1 ${DEBUG_WARNINGS} -DDEBUG -D_DEBUG -DNO_CATCH_EXCEPTIONS")
set(CMAKE_CXX_FLAGS_DEBUG2 "${CXX_FLAGS_DEBUG_ADDITIONAL} -O0 ${DEBUG_WARNINGS} -DDEBUG -D_DEBUG -DNO_CATCH_EXCEPTIONS")
set(CMAKE_CXX_FLAGS_DEBUG3 "${CXX_FLAGS_DEBUG_ADDITIONAL} -O0 ${DEBUG_WARNINGS} -DDEBUG -D_DEBUG -DNO_CATCH_EXCEPTIONS")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CXX_FLAGS_DEBUG_ADDITIONAL} -O2 -DNDEBUG")
set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG")
set(CMAKE_CXX_FLAGS_PROFILE "-O2 -pg ${DEBUG_WARNINGS} -DNDEBUG")
set(CMAKE_MODULE_LINKER_FLAGS_PROFILE "-pg")
set(CMAKE_SHARED_LINKER_FLAGS_PROFILE "-pg")
if (STABS_DEBUG_SYMBOLS)
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -gstabs")
set(CMAKE_CXX_FLAGS_DEBUG2 "${CMAKE_CXX_FLAGS_DEBUG2} -gstabs")
set(CMAKE_CXX_FLAGS_DEBUG3 "${CMAKE_CXX_FLAGS_DEBUG3} -gstabs")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -gstabs")
ELSE ()
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -ggdb1")
set(CMAKE_CXX_FLAGS_DEBUG2 "${CMAKE_CXX_FLAGS_DEBUG2} -ggdb2")
set(CMAKE_CXX_FLAGS_DEBUG3 "${CMAKE_CXX_FLAGS_DEBUG3} -ggdb3")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -g")
ENDIF ()

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}}")

set(LIBRARY_OUTPUT_PATH "${CMAKE_BINARY_DIR}/lib")
set(EXECUTABLE_OUTPUT_PATH "${CMAKE_BINARY_DIR}/bin")

INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR} "${CMAKE_SOURCE_DIR}/../.." ${PNG_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR} ${QT_INCLUDES} ${PHYSFS_INCLUDE_DIR})
include_directories(${WZ_FRAMEWORK_INCLUDE_DIRS} ${PNG_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR} ${QT_INCLUDES} ${PHYSFS_INCLUDE_DIR})

set(MAPTOOLS_LIBS ${PNG_LIBRARIES} ${ZLIB_LIBRARIES} ${PHYSFS_LIBRARY} ${QT_LIBRARIES} ${QT_DEPS})
set(MAPTOOLS_LIBS ${PNG_LIBRARIES} ${ZLIB_LIBRARIES} ${PHYSFS_LIBRARY} ${QT_LIBRARIES})

# map2lnd
ADD_EXECUTABLE(map2lnd
Expand All @@ -93,16 +123,26 @@ TARGET_LINK_LIBRARIES(map2png ${MAPTOOLS_LIBS})

# map2preview
ADD_EXECUTABLE(map2preview
map2preview.cpp
maplib.cpp
mapload.cpp
pngsave.cpp)
map2preview.cpp
maplib.cpp
mapload.cpp
pngsave.cpp)
TARGET_LINK_LIBRARIES(map2preview ${MAPTOOLS_LIBS})

# mapconv
ADD_EXECUTABLE(mapconv
mapconv.cpp
maplib.cpp
mapload.cpp)
mapconv.cpp
maplib.cpp
mapload.cpp)
TARGET_LINK_LIBRARIES(mapconv ${MAPTOOLS_LIBS})

# mapinfo
add_executable(mapinfo
mapinfo.cpp
mapload.cpp)
TARGET_LINK_LIBRARIES(mapinfo ${MAPTOOLS_LIBS})

## Other stuff
set (CONFIGURED YES CACHE INTERNAL "")

# vim: ts=4:sw=4:expandtab

0 comments on commit dd96412

Please sign in to comment.