Cmake: Add build configuration for VS builds

* Build vs 2019 project using cmake.
* Cmake configured to work in windows. Hopefully still works in linux
too!
* Update vcpkg install script.
* Configures build for MG game release or debug mode.
* Still need to fix building mapeditor and g3d viewer.
* Remove CurlGetConfig.cmake (not needed!)
This commit is contained in:
Jammyjamjamman 2021-06-07 22:51:44 +01:00 committed by James Sherratt
parent dd7139ee10
commit 1e8ff3642c
12 changed files with 134 additions and 155 deletions

View File

@ -1,4 +1,25 @@
CMAKE_MINIMUM_REQUIRED( VERSION 2.8.2 )
CMAKE_MINIMUM_REQUIRED( VERSION 3.20 )
IF(WIN32)
STRING(SUBSTRING ${CMAKE_GENERATOR} 0 13 GENERATOR_TYPE)
IF(GENERATOR_TYPE STREQUAL "Visual Studio")
# This must be Set before "PROJECT()" is called.
set(VCPKG_TARGET_TRIPLET "x64-windows-static")
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")
ADD_COMPILE_DEFINITIONS(UNICODE _UNICODE)
SET(MEGAGLEST_DATA_INSTALL_PATH "${CMAKE_INSTALL_PREFIX}/" CACHE STRING "The installation path for data files ${COMMON_INFO_ABOUT_PATH}")
SET(MEGAGLEST_INI_INSTALL_PATH "${MEGAGLEST_DATA_INSTALL_PATH}" CACHE STRING "Install path for ini files")
INCLUDE(FindPkgConfig)
ENDIF()
ENDIF()
PROJECT( MegaGlest )
#SET(CMAKE_VERBOSE_MAKEFILE ON)
@ -31,8 +52,8 @@ IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
ENDIF()
OPTION(BUILD_MEGAGLEST_MODEL_IMPORT_EXPORT_TOOLS "Build model import/export tools" ON)
OPTION(BUILD_MEGAGLEST_MODEL_VIEWER "Build model viewer" ON)
OPTION(BUILD_MEGAGLEST_MAP_EDITOR "Build map editor" ON)
OPTION(BUILD_MEGAGLEST_MODEL_VIEWER "Build model viewer" OFF)
OPTION(BUILD_MEGAGLEST_MAP_EDITOR "Build map editor" OFF)
OPTION(BUILD_MEGAGLEST "Build MegaGlest" ON)
OPTION(BUILD_MEGAGLEST_TESTS "Build MegaGlest Unit Tests" OFF)
OPTION(WANT_SINGLE_INSTALL_DIRECTORY "Use single install directory for everything. It is useful for example for MacOS cpack bundles." OFF)
@ -368,33 +389,6 @@ ELSE()
SET(MEGAGLEST_FRIENDLY_OUTPUT_PATH "${PROJECT_SOURCE_DIR}/data/glest_game/")
ENDIF()
IF(WIN32)
SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH}
${PROJECT_SOURCE_DIR}/source/win32_deps/lib
${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib
${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib)
SET(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH}
${PROJECT_SOURCE_DIR}/source/win32_deps/include
${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854/include
${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854
${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/include
${PROJECT_SOURCE_DIR}/source/win32_deps/libogg-1.2.1/include
${PROJECT_SOURCE_DIR}/source/win32_deps/lua-5.1/src
${PROJECT_SOURCE_DIR}/source/win32_deps/jpeg-8b
${PROJECT_SOURCE_DIR}/source/win32_deps/lpng141
${PROJECT_SOURCE_DIR}/source/win32_deps/zlib-1.2.5
${PROJECT_SOURCE_DIR}/source/win32_deps/curl-7.21.3/include
${PROJECT_SOURCE_DIR}/source/win32_deps/${SDL_WINDOWS_DIR_DINC}/include
${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/include)
link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/lib)
link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib)
link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib)
include_directories("${PROJECT_SOURCE_DIR}/source/win32_deps/Microsoft\ DirectX\ SDK \(November 2007\)/Include")
include_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854/include)
ENDIF()
# Check if sources exist
IF(EXISTS "${PROJECT_SOURCE_DIR}/source/")
MESSAGE(STATUS "**Found game source code.")

View File

@ -1,63 +0,0 @@
#
# Curl Get Config
#
# IF we are using a system that supports curl-config use it.
#
IF(CURL_FOUND)
IF(UNIX)
IF(UNIX AND APPLE AND NOT CMAKE_CURL_CONFIG)
FIND_PROGRAM(CMAKE_CURL_CONFIG curl-config
PATHS /opt/local
PATH_SUFFIXES bin NO_DEFAULT_PATH)
ENDIF()
IF(NOT CMAKE_CURL_CONFIG)
FIND_PROGRAM(CMAKE_CURL_CONFIG curl-config
PATHS
~/Library/Frameworks
/Library/Frameworks
/sw # Fink
/opt/local # DarwinPorts
/opt/csw # Blastwave
/opt
PATH_SUFFIXES bin)
ENDIF()
MARK_AS_ADVANCED(CMAKE_CURL_CONFIG)
IF(CMAKE_CURL_CONFIG)
IF(STATIC_CURL)
# run the curl-config program to get --static-libs
execute_process(COMMAND ${CMAKE_CURL_CONFIG} --static-libs
OUTPUT_VARIABLE CURL_STATIC_LIBS
RESULT_VARIABLE RET
OUTPUT_STRIP_TRAILING_WHITESPACE)
ELSE()
SET(RET 1)
ENDIF()
IF(RET EQUAL 0 AND CURL_STATIC_LIBS)
MESSAGE(STATUS "curl-config: ${CMAKE_CURL_CONFIG}, #1 , using CURL static libs: [${CURL_STATIC_LIBS}]")
SET(CURL_LIBRARIES "-Bstatic ${CURL_STATIC_LIBS}")
ELSE()
execute_process(COMMAND ${CMAKE_CURL_CONFIG} --libs
OUTPUT_VARIABLE CURL_DYNAMIC_LIBS
RESULT_VARIABLE RET2
OUTPUT_STRIP_TRAILING_WHITESPACE)
IF(RET2 EQUAL 0 AND CURL_DYNAMIC_LIBS)
MESSAGE(STATUS "curl-config: ${CMAKE_CURL_CONFIG}, #2 RET = ${RET}, using CURL dynamic libs: ${CURL_DYNAMIC_LIBS}")
SET(CURL_LIBRARIES "${CURL_DYNAMIC_LIBS}")
ELSE()
MESSAGE(STATUS "curl-config: ${CMAKE_CURL_CONFIG}, #3 RET = ${RET}/${RET2}, using CURL libs found by cmake: ${CURL_LIBRARIES}")
ENDIF()
ENDIF()
ENDIF()
ENDIF()
IF(CURL_VERSION_STRING AND "${CURL_VERSION_STRING}" VERSION_LESS "${CURL_MIN_VERSION_MG}")
MESSAGE(STATUS "(please visit http://curl.haxx.se/libcurl/ to find a newer version)")
MESSAGE(FATAL_ERROR " CURL version = [${CURL_VERSION_STRING}] we require AT LEAST [7.16.4]")
ENDIF()
ELSE()
SET(CURL_LIBRARIES)
SET(CURL_INCLUDE_DIRS)
ENDIF()

View File

@ -72,6 +72,8 @@ if (MINIUPNP_FOUND)
set(CMAKE_REQUIRED_INCLUDES ${MINIUPNP_INCLUDE_DIR})
set(CMAKE_REQUIRED_LIBRARIES ${MINIUPNP_LIBRARY})
INCLUDE(CheckCXXSourceRuns)
check_cxx_source_runs("
#include <miniwget.h>
#include <miniupnpc.h>
@ -201,4 +203,3 @@ else ()
endif ()
MARK_AS_ADVANCED(MINIUPNP_INCLUDE_DIR MINIUPNP_LIBRARY)

View File

@ -1,3 +1,3 @@
DataPath=$APPLICATIONPATH\..\..\data\glest_game\
DataPath=$APPLICATIONPATH\..\..\..\megaglest-data\
ServerListPath=$APPLICATIONPATH\..\shared\
GlestKeysIniPath=$APPLICATIONPATH\..\shared\

View File

@ -1 +1 @@
.\vcpkg.exe install brotli:x64-windows-static bzip2:x64-windows-static curl:x64-windows-static expat:x64-windows-static freetype:x64-windows-static fribidi:x64-windows-static ftgl:x64-windows-static glew:x64-windows-static libiconv:x64-windows-static libjpeg-turbo:x64-windows-static liblzma:x64-windows-static libogg:x64-windows-static libpng:x64-windows-static libvorbis:x64-windows-static libxml2:x64-windows-static lua:x64-windows-static openal-soft:x64-windows-static opengl:x64-windows-static pkgconf:x64-windows-static sdl2:x64-windows-static sqlite3:x64-windows-static tiff:x64-windows-static tool-meson:x64-windows-static wxwidgets:x64-windows-static xerces-c:x64-windows-static zlib:x64-windows-static
.\vcpkg.exe install brotli:x64-windows-static bzip2:x64-windows-static curl:x64-windows-static expat:x64-windows-static freetype:x64-windows-static fribidi:x64-windows-static ftgl:x64-windows-static glew:x64-windows-static libiconv:x64-windows-static libjpeg-turbo:x64-windows-static liblzma:x64-windows-static libogg:x64-windows-static libpng:x64-windows-static libvorbis:x64-windows-static libxml2:x64-windows-static lua:x64-windows-static openal-soft:x64-windows-static opengl:x64-windows-static miniupnpc:x64-windows-static sdl2:x64-windows-static sqlite3:x64-windows-static tiff:x64-windows-static tool-meson:x64-windows-static wxwidgets:x64-windows-static xerces-c:x64-windows-static zlib:x64-windows-static

View File

@ -62,7 +62,9 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER)
MESSAGE(STATUS " wxWidgets: ${wxWidgets_INCLUDE_DIRS} ;/; ${wxWidgets_LIBRARIES}")
ENDIF()
find_package(PkgConfig REQUIRED)
IF(PKG_CONFIG_FOUND)
find_package(PkgConfig REQUIRED)
ENDIF()
IF(FORCE_STREFLOP_SOFTWRAPPER)
pkg_search_module(STREFLOP streflop-soft)
ELSE()

View File

@ -92,7 +92,6 @@ IF(BUILD_MEGAGLEST)
ENDIF()
FIND_PACKAGE(CURL REQUIRED)
INCLUDE(${CMAKE_SOURCE_DIR}/mk/cmake/Modules/CurlGetConfig.cmake)
INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIRS})
IF(UNIX)
IF(NOT OPENSSL_FOUND)
@ -139,7 +138,10 @@ IF(BUILD_MEGAGLEST)
ENDIF()
ENDIF()
find_package(PkgConfig REQUIRED)
IF(PKG_CONFIG_FOUND)
find_package(PkgConfig REQUIRED)
ENDIF()
IF(FORCE_STREFLOP_SOFTWRAPPER)
pkg_search_module(STREFLOP streflop-soft)
ELSE()
@ -261,7 +263,7 @@ IF(BUILD_MEGAGLEST)
add_custom_target(run ALL DEPENDS mg.tmp)
ENDIF()
IF(WIN32)
IF(WIN32 AND NOT GENERATOR_TYPE STREQUAL "Visual Studio")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,-subsystem,console -mconsole")
ENDIF()
@ -294,7 +296,25 @@ IF(BUILD_MEGAGLEST)
endif()
IF(WIN32)
TARGET_LINK_LIBRARIES(${TARGET_NAME} stdc++ gcc odbc32 wsock32 winspool winmm shell32 comctl32 ctl3d32 advapi32 wsock32 opengl32 glu32 ole32 oleaut32 uuid mingw32 ddraw dsound dxguid ws2_32 iphlpapi wsock32 libogg libvorbis libvorbisfile zlib jpeg libpng xerces-c2_8_0 OpenAL32 libcurl winmm gdi32 opengl32 glu32 ${SDL_VERSION_NAME} ${SDL_VERSION_NAME}main lua5.1 ${MG_STREFLOP} libmegaglest stdc++ moldname mingwex msvcrt user32 kernel32)
IF(VCPKG_TARGET_TRIPLET)
TARGET_LINK_LIBRARIES(${TARGET_NAME} odbc32 wsock32 winspool winmm shell32 comctl32 advapi32 opengl32 glu32 ole32 oleaut32 uuid ddraw dsound dxguid ws2_32 iphlpapi gdi32 user32 kernel32 dbghelp shlwapi)
find_package(Ogg CONFIG REQUIRED)
find_package(Vorbis CONFIG REQUIRED)
# find_package(ZLIB REQUIRED)
# find_package(JPEG REQUIRED)
find_package(libpng CONFIG REQUIRED)
find_package(XercesC CONFIG REQUIRED)
find_package(OpenAL CONFIG REQUIRED)
# find_package(CURL CONFIG REQUIRED)
find_package(SDL2 CONFIG REQUIRED)
# include(FindLua)
# find_package(Lua REQUIRED)
# find_package(GLEW REQUIRED)
find_package(FTGL CONFIG REQUIRED)
TARGET_LINK_LIBRARIES(${TARGET_NAME} Ogg::ogg Vorbis::vorbis Vorbis::vorbisenc Vorbis::vorbisfile ZLIB::ZLIB ${JPEG_LIBRARIES} png_static xerces_xerces-c XercesC::XercesC OpenAL::OpenAL CURL::libcurl SDL2::SDL2main SDL2::SDL2-static ${LUA_LIBRARIES} ${MG_STREFLOP} libmegaglest GLEW::GLEW ftgl)
ELSE()
TARGET_LINK_LIBRARIES(${TARGET_NAME} stdc++ gcc odbc32 wsock32 winspool winmm shell32 comctl32 ctl3d32 advapi32 wsock32 opengl32 glu32 ole32 oleaut32 uuid mingw32 ddraw dsound dxguid ws2_32 iphlpapi wsock32 libogg libvorbis libvorbisfile zlib jpeg libpng xerces-c2_8_0 OpenAL32 libcurl winmm gdi32 opengl32 glu32 ${SDL_VERSION_NAME} ${SDL_VERSION_NAME}main lua5.1 ${MG_STREFLOP} libmegaglest stdc++ moldname mingwex msvcrt user32 kernel32)
ENDIF()
ENDIF()
IF(NOT WIN32)

View File

@ -290,7 +290,7 @@ static void cleanupProcessObjects() {
CacheManager::cleanupMutexes();
}
#if defined(WIN32) && !defined(_DEBUG) && !defined(__GNUC__)
#if defined(WIN32) && !defined(__GNUC__)
void fatal(const char *s, ...) // failure exit
{
static int errors = 0;

View File

@ -79,7 +79,9 @@ IF(BUILD_MEGAGLEST_MAP_EDITOR)
link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib)
ENDIF()
find_package(PkgConfig REQUIRED)
IF(PKG_CONFIG_FOUND)
find_package(PkgConfig REQUIRED)
ENDIF()
IF(FORCE_STREFLOP_SOFTWRAPPER)
pkg_search_module(STREFLOP streflop-soft)
ELSE()

View File

@ -4,7 +4,10 @@
OPTION(FORCE_EMBEDDED_LIBS "Force use of embedded libraries' code." OFF)
# IMPORTANT: should come BEFORE finding packages
find_package(PkgConfig REQUIRED)
IF(PKG_CONFIG_FOUND)
find_package(PkgConfig REQUIRED)
ENDIF()
IF(FORCE_STREFLOP_SOFTWRAPPER)
pkg_search_module(STREFLOP streflop-soft)
ELSE()
@ -30,6 +33,9 @@ ENDIF()
IF(WANT_USE_STREFLOP)
IF(NOT STREFLOP_FOUND)
IF(WIN32 AND GENERATOR_TYPE STREQUAL "Visual Studio")
ADD_COMPILE_DEFINITIONS(STREFLOP_SSE LIBM_COMPILING_FLT32)
ENDIF()
ADD_SUBDIRECTORY(sources/streflop)
ELSE()
INCLUDE_DIRECTORIES(${STREFLOP_INCLUDE_DIRS} ${STREFLOP_INCLUDE_DIRS}/streflop)
@ -51,29 +57,31 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST
INCLUDE (CheckIncludeFiles)
IF(WIN32)
SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH}
${PROJECT_SOURCE_DIR}/source/win32_deps/lib
${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib
${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib)
IF(NOT VCPKG_TARGET_TRIPLET)
SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH}
${PROJECT_SOURCE_DIR}/source/win32_deps/lib
${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib
${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/include)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854/include)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/include)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/libogg-1.2.1/include)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/lua-5.1/src)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/jpeg-8b)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/lpng141)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/zlib-1.2.5)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/curl-7.21.3/include)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/${SDL_WINDOWS_DIR_DINC}/include)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/include)
link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/lib)
link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib)
link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/include)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854/include)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/include)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/libogg-1.2.1/include)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/lua-5.1/src)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/jpeg-8b)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/lpng141)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/zlib-1.2.5)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/curl-7.21.3/include)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/${SDL_WINDOWS_DIR_DINC}/include)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/include)
link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/lib)
link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib)
link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/include)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/include)
ENDIF()
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/shared_lib/include/platform/posix)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/shared_lib/include/platform/win32)
ENDIF()
@ -88,7 +96,6 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST
ENDIF()
FIND_PACKAGE(CURL REQUIRED)
INCLUDE(${CMAKE_SOURCE_DIR}/mk/cmake/Modules/CurlGetConfig.cmake)
INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIRS})
IF(UNIX)
IF(NOT OPENSSL_FOUND)
@ -118,13 +125,13 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${X11_LIBRARIES})
ENDIF()
IF(WANT_USE_XercesC)
FIND_PACKAGE(XercesC REQUIRED)
INCLUDE_DIRECTORIES(${XERCESC_INCLUDE_DIR})
IF(UNIX)
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${XERCESC_LIBRARY})
ENDIF()
ENDIF()
IF(WANT_USE_XercesC)
FIND_PACKAGE(XercesC REQUIRED)
INCLUDE_DIRECTORIES(${XERCESC_INCLUDE_DIR})
IF(UNIX)
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${XERCESC_LIBRARY})
ENDIF()
ENDIF()
FIND_PACKAGE(OpenAL REQUIRED)
INCLUDE_DIRECTORIES(${OPENAL_INCLUDE_DIR})
@ -132,11 +139,11 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${OPENAL_LIBRARY})
ENDIF()
FIND_PACKAGE(LUA REQUIRED)
INCLUDE_DIRECTORIES(${LUA_INCLUDE_DIR})
IF(UNIX)
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${LUA_LIBRARIES} ${CMAKE_DL_LIBS})
ENDIF()
FIND_PACKAGE(LUA REQUIRED)
INCLUDE_DIRECTORIES(${LUA_INCLUDE_DIR})
IF(UNIX)
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${LUA_LIBRARIES} ${CMAKE_DL_LIBS})
ENDIF()
FIND_PACKAGE(JPEG REQUIRED)
INCLUDE_DIRECTORIES(${JPEG_INCLUDE_DIR})
@ -150,7 +157,7 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PNG_LIBRARY})
ENDIF()
OPTION(WANT_USE_FontConfig "use the library fontconfig" ON)
OPTION(WANT_USE_FontConfig "use the library fontconfig" ON)
IF(WANT_USE_FontConfig)
FIND_PACKAGE(FontConfig)
IF(FONTCONFIG_FOUND)
@ -291,23 +298,25 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST
FIND_PACKAGE(Miniupnpc)
ENDIF()
if(NOT MINIUPNP_FOUND)
if(NOT MINIUPNP_FOUND OR GENERATOR_TYPE STREQUAL "Visual Studio")
if(NOT FORCE_USE_EMBEDDED_Miniupnpc)
MESSAGE(STATUS "*** Using EMBEDDED miniupnpc since dev system does not have it... MINIUPNP_FOUND [${MINIUPNP_FOUND}]")
else()
MESSAGE(STATUS "*** Using EMBEDDED miniupnpc because it was forced by option")
endif()
if (NOT WIN32)
add_definitions (-DMINIUPNPC_SET_SOCKET_TIMEOUT)
add_definitions (-D_BSD_SOURCE)
if (NOT WIN32)
add_definitions (-DMINIUPNPC_SET_SOCKET_TIMEOUT)
add_definitions (-D_BSD_SOURCE)
if (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
add_definitions (-DMACOSX -D_DARWIN_C_SOURCE)
else()
add_definitions (-D_POSIX_C_SOURCE=200809L)
endif ()
endif()
if (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
add_definitions (-DMACOSX -D_DARWIN_C_SOURCE)
else()
add_definitions (-D_POSIX_C_SOURCE=200809L)
endif ()
ELSEIF(GENERATOR_TYPE STREQUAL "Visual Studio")
ADD_COMPILE_DEFINITIONS(MINIUPNP_STATICLIB)
endif()
SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/miniupnpc)
else()
@ -425,7 +434,6 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST
SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/${SDL_VERSION_SNAME}/thread.cpp)
SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/${SDL_VERSION_SNAME}/window.cpp)
SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/${SDL_VERSION_SNAME}/window_gl.cpp)
SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/win32_deps/src/glprocs.c)
ENDIF()
FOREACH(DIR IN LISTS DIRS_WITH_SRC)
@ -496,7 +504,25 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST
ENDIF()
IF(WIN32)
TARGET_LINK_LIBRARIES(${TARGET_NAME} stdc++ gcc odbc32 wsock32 winspool winmm shell32 comctl32 ctl3d32 advapi32 wsock32 opengl32 glu32 ole32 oleaut32 uuid mingw32 ddraw dsound dxguid ws2_32 iphlpapi wsock32 libogg libvorbis libvorbisfile zlib jpeg libpng xerces-c2_8_0 OpenAL32 libcurl winmm gdi32 opengl32 glu32 ${SDL_VERSION_NAME} ${SDL_VERSION_NAME}main lua5.1 stdc++ moldname mingwex msvcrt user32 kernel32)
IF(VCPKG_TARGET_TRIPLET)
TARGET_LINK_LIBRARIES(${TARGET_NAME} odbc32 wsock32 winspool winmm shell32 comctl32 advapi32 opengl32 glu32 ole32 oleaut32 uuid ddraw dsound dxguid ws2_32 iphlpapi user32 kernel32 dbghelp shlwapi)
find_package(Ogg CONFIG REQUIRED)
find_package(Vorbis CONFIG REQUIRED)
# find_package(ZLIB REQUIRED)
# find_package(JPEG REQUIRED)
find_package(libpng CONFIG REQUIRED)
find_package(XercesC CONFIG REQUIRED)
find_package(OpenAL CONFIG REQUIRED)
# find_package(CURL CONFIG REQUIRED)
find_package(SDL2 CONFIG REQUIRED)
# include(FindLua)
# find_package(Lua REQUIRED)
# find_package(GLEW REQUIRED)
find_package(FTGL CONFIG REQUIRED)
TARGET_LINK_LIBRARIES(${TARGET_NAME} Ogg::ogg Vorbis::vorbis Vorbis::vorbisenc Vorbis::vorbisfile ZLIB::ZLIB ${JPEG_LIBRARIES} png_static xerces_xerces-c XercesC::XercesC OpenAL::OpenAL CURL::libcurl gdi32 SDL2::SDL2main SDL2::SDL2-static ${LUA_LIBRARIES} ${MG_STREFLOP} GLEW::GLEW ftgl)
ELSE()
TARGET_LINK_LIBRARIES(${TARGET_NAME} stdc++ gcc odbc32 wsock32 winspool winmm shell32 comctl32 ctl3d32 advapi32 wsock32 opengl32 glu32 ole32 oleaut32 uuid mingw32 ddraw dsound dxguid ws2_32 iphlpapi wsock32 libogg libvorbis libvorbisfile zlib jpeg libpng xerces-c2_8_0 OpenAL32 libcurl winmm gdi32 opengl32 glu32 ${SDL_VERSION_NAME} ${SDL_VERSION_NAME}main lua5.1 stdc++ moldname mingwex msvcrt user32 kernel32)
ENDIF()
ENDIF()
IF(WANT_USE_STREFLOP AND NOT STREFLOP_FOUND)

View File

@ -112,7 +112,7 @@ void ontop_win32(int width, int height);
void CheckPacketThrottling();
// The following is used for stacking tracing for windows based exceptions
#if !defined(_DEBUG) && !defined(__GNUC__)
#if !defined(__GNUC__)
// easy safe strings
#define MAXSTRLEN 260

View File

@ -16,9 +16,6 @@
#include "conversion.h"
#include <algorithm>
#include "util.h"
#ifdef WIN32
#include "glext.h"
#endif
#include "leak_dumper.h"