-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Koncord
committed
Aug 29, 2018
0 parents
commit 841ea10
Showing
61 changed files
with
6,881 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
[submodule "extern/json"] | ||
path = extern/json | ||
url = https://github.com/nlohmann/json |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,197 @@ | ||
# set the minimum required version across the board | ||
cmake_minimum_required(VERSION 3.5.0) | ||
|
||
project(tes3mp-Browser) | ||
|
||
# If the user doesn't supply a CMAKE_BUILD_TYPE via command line, choose one for them. | ||
IF(NOT CMAKE_BUILD_TYPE) | ||
SET(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING | ||
"Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel." | ||
FORCE) | ||
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS None Debug Release RelWithDebInfo MinSizeRel) | ||
ENDIF() | ||
|
||
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/) | ||
|
||
option(BOOST_STATIC "Link static build of Boost into the binaries" FALSE) | ||
option(QT_STATIC "Link static build of QT into the binaries" FALSE) | ||
|
||
if (MSVC) | ||
option(OPENMW_MP_BUILD "Build OpenMW with /MP flag" OFF) | ||
option(OPENMW_LTO_BUILD "Build OpenMW with Link-Time Optimization (Needs ~2GB of RAM)" OFF) | ||
endif() | ||
|
||
# Set up common paths | ||
if (APPLE) | ||
set(MORROWIND_DATA_FILES "./data" CACHE PATH "location of Morrowind data files") | ||
set(OPENMW_RESOURCE_FILES "../Resources/resources" CACHE PATH "location of OpenMW resources files") | ||
elseif(UNIX) | ||
# Paths | ||
SET(BINDIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Where to install binaries") | ||
SET(LIBDIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}" CACHE PATH "Where to install libraries") | ||
SET(DATAROOTDIR "${CMAKE_INSTALL_PREFIX}/share" CACHE PATH "Sets the root of data directories to a non-default location") | ||
SET(GLOBAL_DATA_PATH "${DATAROOTDIR}/games/" CACHE PATH "Set data path prefix") | ||
SET(DATADIR "${GLOBAL_DATA_PATH}/openmw" CACHE PATH "Sets the openmw data directories to a non-default location") | ||
SET(ICONDIR "${DATAROOTDIR}/pixmaps" CACHE PATH "Set icon dir") | ||
SET(LICDIR "${DATAROOTDIR}/licenses/openmw" CACHE PATH "Sets the openmw license directory to a non-default location.") | ||
IF("${CMAKE_INSTALL_PREFIX}" STREQUAL "/usr") | ||
SET(GLOBAL_CONFIG_PATH "/etc/" CACHE PATH "Set config dir prefix") | ||
ELSE() | ||
SET(GLOBAL_CONFIG_PATH "${CMAKE_INSTALL_PREFIX}/etc/" CACHE PATH "Set config dir prefix") | ||
ENDIF() | ||
SET(SYSCONFDIR "${GLOBAL_CONFIG_PATH}/openmw" CACHE PATH "Set config dir") | ||
|
||
set(MORROWIND_DATA_FILES "${DATADIR}/data" CACHE PATH "location of Morrowind data files") | ||
set(OPENMW_RESOURCE_FILES "${DATADIR}/resources" CACHE PATH "location of OpenMW resources files") | ||
else() | ||
set(MORROWIND_DATA_FILES "data" CACHE PATH "location of Morrowind data files") | ||
set(OPENMW_RESOURCE_FILES "resources" CACHE PATH "location of OpenMW resources files") | ||
endif(APPLE) | ||
|
||
|
||
find_package(Qt5Widgets REQUIRED) | ||
find_package(Qt5Core REQUIRED) | ||
find_package(Qt5Network REQUIRED) | ||
find_package(Qt5WebSockets REQUIRED) | ||
|
||
# Instruct CMake to run moc automatically when needed. | ||
#set(CMAKE_AUTOMOC ON) | ||
|
||
|
||
# Platform specific | ||
if (WIN32) | ||
if(NOT MINGW) | ||
set(Boost_USE_STATIC_LIBS ON) | ||
add_definitions(-DBOOST_ALL_NO_LIB) | ||
endif(NOT MINGW) | ||
|
||
# Suppress WinMain(), provided by SDL | ||
add_definitions(-DSDL_MAIN_HANDLED) | ||
|
||
# Get rid of useless crud from windows.h | ||
add_definitions(-DNOMINMAX -DWIN32_LEAN_AND_MEAN) | ||
endif() | ||
|
||
# Fix for not visible pthreads functions for linker with glibc 2.15 | ||
if (UNIX AND NOT APPLE) | ||
find_package (Threads) | ||
endif() | ||
|
||
# Look for stdint.h | ||
include(CheckIncludeFile) | ||
check_include_file(stdint.h HAVE_STDINT_H) | ||
if(NOT HAVE_STDINT_H) | ||
unset(HAVE_STDINT_H CACHE) | ||
message(FATAL_ERROR "stdint.h was not found" ) | ||
endif() | ||
|
||
set(BOOST_COMPONENTS system filesystem program_options) | ||
if(WIN32) | ||
set(BOOST_COMPONENTS ${BOOST_COMPONENTS} locale) | ||
endif(WIN32) | ||
|
||
IF(BOOST_STATIC) | ||
set(Boost_USE_STATIC_LIBS ON) | ||
endif() | ||
|
||
find_package(Boost REQUIRED COMPONENTS ${BOOST_COMPONENTS}) | ||
find_package(RakNet REQUIRED) | ||
|
||
set(NJSON_INCLUDES "${CMAKE_SOURCE_DIR}/extern/json/single_include/nlohmann") | ||
|
||
include_directories("." | ||
SYSTEM | ||
${Boost_INCLUDE_DIR} | ||
${RakNet_INCLUDES} | ||
${NJSON_INCLUDES} | ||
) | ||
|
||
link_directories(${Boost_LIBRARY_DIRS}) | ||
|
||
if (APPLE) | ||
configure_file(${OpenMW_SOURCE_DIR}/files/mac/openmw-Info.plist.in | ||
"${APP_BUNDLE_DIR}/Contents/Info.plist") | ||
|
||
configure_file(${OpenMW_SOURCE_DIR}/files/mac/openmw.icns | ||
"${APP_BUNDLE_DIR}/Contents/Resources/OpenMW.icns" COPYONLY) | ||
endif (APPLE) | ||
|
||
# Set up DEBUG define | ||
set_directory_properties(PROPERTIES COMPILE_DEFINITIONS_DEBUG DEBUG=1) | ||
|
||
if (NOT APPLE) | ||
set(OPENMW_MYGUI_FILES_ROOT ${OpenMW_BINARY_DIR}) | ||
set(OPENMW_SHADERS_ROOT ${OpenMW_BINARY_DIR}) | ||
endif () | ||
|
||
# Specify build paths | ||
|
||
if (APPLE) | ||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${APP_BUNDLE_DIR}/Contents/MacOS") | ||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${APP_BUNDLE_DIR}/Contents/MacOS") | ||
|
||
if (OPENMW_OSX_DEPLOYMENT) | ||
SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) | ||
endif() | ||
else (APPLE) | ||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${OpenMW_BINARY_DIR}") | ||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${OpenMW_BINARY_DIR}") | ||
endif (APPLE) | ||
|
||
# CXX Compiler settings | ||
set(CMAKE_CXX_STANDARD 17) | ||
|
||
if (CMAKE_CXX_COMPILER_ID STREQUAL GNU OR CMAKE_CXX_COMPILER_ID STREQUAL Clang) | ||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wundef -Wno-unused-parameter -pedantic -Wno-long-long") | ||
add_definitions( -DBOOST_NO_CXX11_SCOPED_ENUMS=ON ) | ||
|
||
if (APPLE) | ||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") | ||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++") | ||
endif() | ||
|
||
if (CMAKE_CXX_COMPILER_ID STREQUAL Clang AND NOT APPLE) | ||
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 3.6 OR CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 3.6) | ||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-potentially-evaluated-expression") | ||
endif () | ||
endif() | ||
|
||
if (CMAKE_CXX_COMPILER_ID STREQUAL GNU AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.6 OR CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 4.6) | ||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-but-set-parameter") | ||
endif() | ||
elseif (MSVC) | ||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} /Zi /bigobj") | ||
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF /INCREMENTAL:NO") | ||
# Enable link-time code generation globally for all linking | ||
if (OPENMW_LTO_BUILD) | ||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /GL") | ||
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /LTCG") | ||
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /LTCG") | ||
set(CMAKE_STATIC_LINKER_FLAGS_RELEASE "${CMAKE_STATIC_LINKER_FLAGS_RELEASE} /LTCG") | ||
endif() | ||
|
||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /FORCE:MULTIPLE") | ||
endif (CMAKE_CXX_COMPILER_ID STREQUAL GNU OR CMAKE_CXX_COMPILER_ID STREQUAL Clang) | ||
|
||
IF(NOT WIN32 AND NOT APPLE) | ||
# Linux installation | ||
|
||
# Install binaries | ||
|
||
INSTALL(PROGRAMS "${OpenMW_BINARY_DIR}/tes3mp-browser" DESTINATION "${BINDIR}" ) | ||
|
||
|
||
# Install licenses | ||
INSTALL(FILES "files/mygui/DejaVu Font License.txt" DESTINATION "${LICDIR}" ) | ||
|
||
# Install icon and desktop file | ||
INSTALL(FILES "${OpenMW_BINARY_DIR}/tes3mp-browser.desktop" DESTINATION "${DATAROOTDIR}/applications" COMPONENT "browser") | ||
|
||
|
||
ENDIF(NOT WIN32 AND NOT APPLE) | ||
|
||
# Components | ||
add_subdirectory (components) | ||
|
||
# Apps and tools | ||
add_subdirectory(apps/browser) |
Oops, something went wrong.