Skip to content

Commit

Permalink
Builder|CMake: Added root CMakeLists; tweaks for Unix config
Browse files Browse the repository at this point in the history
There is now a root-level CMakeLists.txt for easier automation.

The Unix build configuration was made more robust by reducing use of
global add_definitions().
  • Loading branch information
skyjake committed Nov 27, 2019
1 parent c3e0e5d commit a8b23ff
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 10 deletions.
5 changes: 5 additions & 0 deletions CMakeLists.txt
@@ -0,0 +1,5 @@
# Doomsday Engine
# Top-level CMakeLists

cmake_minimum_required (VERSION 3.1)
add_subdirectory (doomsday)
14 changes: 4 additions & 10 deletions doomsday/cmake/PlatformUnix.cmake
Expand Up @@ -21,16 +21,6 @@ add_definitions (
-D__USE_BSD
-D_GNU_SOURCE=1
)
if (DENG_BASE_DIR)
add_definitions (-DDENG_BASE_DIR="${DENG_BASE_DIR}")
else ()
add_definitions (-DDENG_BASE_DIR="${CMAKE_INSTALL_PREFIX}/${DENG_INSTALL_DATA_DIR}")
endif ()
if (NOT DENG_LIBRARY_DIR STREQUAL "")
add_definitions (-DDENG_LIBRARY_DIR="${DENG_LIBRARY_DIR}")
else ()
add_definitions (-DDENG_LIBRARY_DIR="${CMAKE_INSTALL_PREFIX}/${DENG_INSTALL_PLUGIN_DIR}")
endif ()

if (DENG_UPDATER_PLATFORM)
add_definitions (-DDENG_PLATFORM_ID="${DENG_UPDATER_PLATFORM}-${DENG_ARCH}")
Expand All @@ -39,6 +29,10 @@ else ()
endif ()

if (CMAKE_COMPILER_IS_GNUCXX)
foreach (cxxOpt -Wno-deprecated-copy;-Wno-class-memaccess;-Wno-address-of-packed-member)
append_unique (CMAKE_CXX_FLAGS ${cxxOpt})
endforeach (cxxOpt)

# The tree FRE optimization causes crashes with GCC 6 (Yakkety).
append_unique (CMAKE_CXX_FLAGS_RELEASE -fno-tree-fre)
append_unique (CMAKE_CXX_FLAGS_RELWITHDEBINFO -fno-tree-fre)
Expand Down
17 changes: 17 additions & 0 deletions doomsday/sdk/libcore/CMakeLists.txt
Expand Up @@ -60,6 +60,23 @@ deng_add_library (libcore ${SOURCES} ${HEADERS})
target_include_directories (libcore PRIVATE ${ZLIB_INCLUDE_DIR})
deng_target_link_qt (libcore PUBLIC Core Network)
target_link_libraries (libcore PUBLIC ${ZLIB_LIBRARIES})
if (UNIX AND NOT APPLE)
if (DENG_BASE_DIR)
set (baseDir "${DENG_BASE_DIR}")
else ()
set (baseDir "${CMAKE_INSTALL_PREFIX}/${DENG_INSTALL_DATA_DIR}")
endif ()
if (DENG_LIBRARY_DIR)
set (libDir "${DENG_LIBRARY_DIR}")
else ()
set (libDir "${CMAKE_INSTALL_PREFIX}/${DENG_INSTALL_PLUGIN_DIR}")
endif ()
target_compile_definitions (libcore PUBLIC
-DDENG_BASE_DIR="${baseDir}"
-DDENG_LIBRARY_DIR="${libDir}"
)
endif ()

deng_deploy_library (libcore DengCore)

deng_cotire (libcore src/precompiled.h)

0 comments on commit a8b23ff

Please sign in to comment.