Merge branch 'build/windows_cmake_msbuild' into play
This commit is contained in:
commit
8f0abb60b3
|
@ -107,7 +107,6 @@ jobs:
|
|||
vcpkg install sdl2:x64-windows-static
|
||||
vcpkg install sqlite3:x64-windows-static
|
||||
vcpkg install tiff:x64-windows-static
|
||||
vcpkg install tool-meson:x64-windows-static
|
||||
vcpkg install wxwidgets:x64-windows-static
|
||||
vcpkg install xerces-c:x64-windows-static
|
||||
vcpkg install zlib:x64-windows-static
|
||||
|
|
168
CMakeLists.txt
168
CMakeLists.txt
|
@ -1,11 +1,21 @@
|
|||
CMAKE_MINIMUM_REQUIRED( VERSION 2.8.2 )
|
||||
IF(WIN32)
|
||||
# Windows cmake version needs to be higher - for CMAKE_MSVC_RUNTIME_LIBRARY.
|
||||
CMAKE_MINIMUM_REQUIRED( VERSION 3.15 )
|
||||
|
||||
# This must be Set before "PROJECT()" is called.
|
||||
SET(VCPKG_TARGET_TRIPLET "x64-windows-static")
|
||||
ELSE()
|
||||
CMAKE_MINIMUM_REQUIRED( VERSION 3.5 )
|
||||
ENDIF()
|
||||
|
||||
PROJECT( MegaGlest )
|
||||
|
||||
#SET(CMAKE_VERBOSE_MAKEFILE ON)
|
||||
|
||||
#
|
||||
# *NOTE: For now we assume some variation of GCC Compiler (or MingW for Windows binaries)
|
||||
# VC++ users should not use CMake yet but rather the build-mg.bat file in mk/windoze
|
||||
# *NOTE: This script has been tested and works with with GCC, Clang and MSbuild (VS).
|
||||
# MSBuild requires using vcpkg and installing required libs.
|
||||
# Script works with Windows, Linux and Mac.
|
||||
#
|
||||
|
||||
# build type
|
||||
|
@ -18,13 +28,38 @@ IF(NOT CMAKE_VERSION VERSION_LESS "3.1")
|
|||
cmake_policy(SET CMP0054 NEW)
|
||||
ENDIF()
|
||||
|
||||
IF(MSVC)
|
||||
# Sets the flags MT/ MTd correctly.
|
||||
SET(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
|
||||
|
||||
INCLUDE(ProcessorCount)
|
||||
ProcessorCount(N)
|
||||
IF(N GREATER 0)
|
||||
MESSAGE(STATUS "Will build on ${N} cores.")
|
||||
ELSE()
|
||||
SET(N 1)
|
||||
MESSAGE(STATUS "Could not find number of cores. Will attempt to build on ${N} cores.")
|
||||
ENDIF()
|
||||
|
||||
# "MP" is build with all cores.
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MP${N}")
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MP${N}")
|
||||
SET(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_$} /MP${N}" )
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_$} /MP${N}" )
|
||||
|
||||
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()
|
||||
|
||||
# add additional CMake modules
|
||||
MESSAGE(STATUS "CMAKE_SOURCE_DIR = ${CMAKE_SOURCE_DIR}")
|
||||
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/mk/cmake/Modules)
|
||||
IF(CMAKE_BUILD_TYPE)
|
||||
MESSAGE(STATUS "Build type for this compile will be: ${CMAKE_BUILD_TYPE}")
|
||||
ENDIF()
|
||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "(Apple)?Clang")
|
||||
SET(CMAKE_COMPILER_IS_GNUCXX "YES")
|
||||
# ADD_DEFINITIONS("-Qunused-arguments -Wno-switch")
|
||||
ADD_DEFINITIONS("-Wno-switch")
|
||||
|
@ -90,10 +125,12 @@ FOREACH(ver_var VER_MAJOR;VER_MINOR;VER_PATCH;MEGAGLEST_VERSION)
|
|||
ENDFOREACH()
|
||||
MESSAGE(STATUS "Detected MegaGlest Version is [v${MEGAGLEST_VERSION}] ")
|
||||
|
||||
SET(PIC_FLAG "${PIC_FLAG} -fPIC")
|
||||
IF(WANT_STATIC_LIBS AND "${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
|
||||
# CMAKE_SIZEOF_VOID_P=8 => 64bit
|
||||
ADD_DEFINITIONS("${PIC_FLAG}")
|
||||
IF(NOT MSVC)
|
||||
SET(PIC_FLAG "${PIC_FLAG} -fPIC")
|
||||
IF(WANT_STATIC_LIBS AND "${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
|
||||
# CMAKE_SIZEOF_VOID_P=8 => 64bit
|
||||
ADD_DEFINITIONS("${PIC_FLAG}")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
## Compiler flags, CPACK configuration and other Apple specific code.
|
||||
|
@ -101,20 +138,24 @@ IF(APPLE)
|
|||
include(${PROJECT_SOURCE_DIR}/mk/macos/CMakeLists.txt)
|
||||
ENDIF(APPLE)
|
||||
|
||||
IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW)
|
||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW OR MSVC)
|
||||
IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "(Apple)?Clang")
|
||||
MESSAGE(STATUS "Detected CLANG Compiler...")
|
||||
ELSEIF(CMAKE_COMPILER_IS_GNUCXX)
|
||||
MESSAGE(STATUS "Detected GNUC Compiler...")
|
||||
ELSEIF(MINGW)
|
||||
MESSAGE(STATUS "Detected MINGW Compiler...")
|
||||
ELSEIF(MSVC)
|
||||
MESSAGE(STATUS "Detected VS target for building with msbuild...")
|
||||
ENDIF()
|
||||
|
||||
# Common generic GNU type compiler options that work with all generic GCC compatible compilers
|
||||
ADD_DEFINITIONS("-Wuninitialized -Wsign-compare -Wunused-function -Wunused-variable -Wreturn-type -fno-strict-aliasing")
|
||||
IF(NOT MSVC)
|
||||
ADD_DEFINITIONS("-Wuninitialized -Wsign-compare -Wunused-function -Wunused-variable -Wreturn-type -fno-strict-aliasing")
|
||||
ENDIF()
|
||||
|
||||
# For gcc warning options see: http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
|
||||
IF(NOT MINGW)
|
||||
IF(NOT WIN32)
|
||||
# For tons of verbose warnings add: -Wall
|
||||
# ADD_DEFINITIONS("-Wreturn-type -fno-strict-aliasing -frounding-math -fsignaling-nans -mfpmath=sse -msse -rdynamic")
|
||||
# ADD_DEFINITIONS("-Wuninitialized -Wsign-compare -Wunused-function -Wunused-variable -Wreturn-type -fno-strict-aliasing -frounding-math -fsignaling-nans -rdynamic")
|
||||
|
@ -125,7 +166,9 @@ IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW)
|
|||
ENDIF()
|
||||
|
||||
# CLang specific Compiler Options
|
||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "(Apple)?Clang")
|
||||
|
||||
ELSEIF(MSVC)
|
||||
|
||||
# GCC specific Compiler Options
|
||||
ELSE()
|
||||
|
@ -173,41 +216,43 @@ IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW)
|
|||
MESSAGE(STATUS "*WARNING: Disabled use of STREFLOP! Out of synchs may occur")
|
||||
ENDIF()
|
||||
|
||||
include(CheckCXXSourceRuns)
|
||||
include(CheckCXXSourceRuns)
|
||||
|
||||
check_cxx_source_runs("
|
||||
#include <execinfo.h>
|
||||
#include <stdio.h>
|
||||
int main()
|
||||
{
|
||||
const size_t max_depth = 6;
|
||||
void *stack_addrs[max_depth];
|
||||
size_t stack_depth = backtrace(stack_addrs, max_depth);
|
||||
}"
|
||||
HAS_GCC_BACKTRACE)
|
||||
check_cxx_source_runs("
|
||||
#include <execinfo.h>
|
||||
#include <stdio.h>
|
||||
int main()
|
||||
{
|
||||
const size_t max_depth = 6;
|
||||
void *stack_addrs[max_depth];
|
||||
size_t stack_depth = backtrace(stack_addrs, max_depth);
|
||||
}"
|
||||
HAS_GCC_BACKTRACE)
|
||||
|
||||
IF(HAS_GCC_BACKTRACE)
|
||||
message(STATUS "Found GCC backtrace lib, will support backtraces")
|
||||
ADD_DEFINITIONS(-DHAS_GCC_BACKTRACE)
|
||||
ELSE()
|
||||
message(STATUS "**WARNING DID NOT Find GCC backtrace lib")
|
||||
ENDIF()
|
||||
|
||||
# Debug compiler flags
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g3")
|
||||
|
||||
# Release compiler flags
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "-O3 ${CMAKE_CXX_FLAGS_RELEASE} -O3 ")
|
||||
IF(NOT CMAKE_GENERATOR STREQUAL Xcode)
|
||||
SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -s") ## Strip binary
|
||||
IF(HAS_GCC_BACKTRACE)
|
||||
message(STATUS "Found GCC backtrace lib, will support backtraces")
|
||||
ADD_DEFINITIONS(-DHAS_GCC_BACKTRACE)
|
||||
ELSE()
|
||||
message(STATUS "**WARNING DID NOT Find GCC backtrace lib")
|
||||
ENDIF()
|
||||
|
||||
IF(NOT MSVC)
|
||||
# Debug compiler flags
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g3")
|
||||
|
||||
# Release with debug info compiler flags
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O3 ${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -g -O3 ")
|
||||
# Release compiler flags
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "-O3 ${CMAKE_CXX_FLAGS_RELEASE} -O3 ")
|
||||
IF(NOT CMAKE_GENERATOR STREQUAL Xcode)
|
||||
SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -s") ## Strip binary
|
||||
ENDIF()
|
||||
|
||||
# Release minimum size compiler flags
|
||||
IF(NOT CMAKE_GENERATOR STREQUAL Xcode)
|
||||
SET(CMAKE_EXE_LINKER_FLAGS_MINSIZEREL "${CMAKE_EXE_LINKER_FLAGS_MINSIZEREL} -s") ## Strip binary
|
||||
# Release with debug info compiler flags
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O3 ${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -g -O3 ")
|
||||
|
||||
# Release minimum size compiler flags
|
||||
IF(NOT CMAKE_GENERATOR STREQUAL Xcode)
|
||||
SET(CMAKE_EXE_LINKER_FLAGS_MINSIZEREL "${CMAKE_EXE_LINKER_FLAGS_MINSIZEREL} -s") ## Strip binary
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
# see if this fixes compile issue for tomreyn: libpthread.so.0: error adding symbols: DSO missing from command line
|
||||
|
@ -327,7 +372,7 @@ IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW)
|
|||
message(STATUS "CMAKE_CXX_FLAGS_${MG_BUILD_TYPE}: ${CMAKE_CXX_FLAGS_${MG_BUILD_TYPE}}")
|
||||
|
||||
# Win32 specific Compiler Flags
|
||||
IF(WIN32)
|
||||
IF(WIN32 AND NOT MSVC)
|
||||
ADD_DEFINITIONS("-D_WINDOWS -D_WIN32 -D_STDCALL_SUPPORTED -D_M_IX86 -DXML_LIBRARY -D_LIB -DCURL_STATICLIB")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
@ -364,35 +409,18 @@ ELSEIF(UNIX AND APPLE)
|
|||
SET(MEGAGLEST_FRIENDLY_OUTPUT_PATH "${PROJECT_SOURCE_DIR}/mk/macos/")
|
||||
ELSEIF(UNIX AND NOT APPLE)
|
||||
SET(MEGAGLEST_FRIENDLY_OUTPUT_PATH "${PROJECT_SOURCE_DIR}/mk/other_unix/")
|
||||
ELSEIF(WIN32)
|
||||
SET(MEGAGLEST_FRIENDLY_OUTPUT_PATH "${PROJECT_SOURCE_DIR}/mk/windoze/")
|
||||
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)
|
||||
# Set VS project exe outputs.
|
||||
IF(MSVC)
|
||||
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${MEGAGLEST_FRIENDLY_OUTPUT_PATH})
|
||||
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${MEGAGLEST_FRIENDLY_OUTPUT_PATH})
|
||||
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL ${MEGAGLEST_FRIENDLY_OUTPUT_PATH})
|
||||
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${MEGAGLEST_FRIENDLY_OUTPUT_PATH})
|
||||
ENDIF()
|
||||
|
||||
# Check if sources exist
|
||||
|
@ -422,7 +450,7 @@ ENDIF()
|
|||
#get_directory_property( DirDefs COMPILE_DEFINITIONS )
|
||||
#MESSAGE(STATUS ">>>> NOTICE Compiler definitions used: ${DirDefs}")
|
||||
#MESSAGE(STATUS "END of compile defs...")
|
||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "(Apple)?Clang")
|
||||
MESSAGE(WARNING ">> CLANG is NOT currently compatible as it does not support the following essential GCC compiler settings: -frounding-math -fsignaling-nans")
|
||||
ENDIF()
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -20,89 +20,27 @@ macro(special_check_for_sse _max_sse_level_desired)
|
|||
include(CheckCXXSourceRuns)
|
||||
include(CheckCSourceRuns)
|
||||
|
||||
# Add MSVC to stop flags being added to msbuild.
|
||||
IF(NOT MINGW)
|
||||
if( CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX )
|
||||
set(SSE_FLAGS)
|
||||
|
||||
set(CMAKE_REQUIRED_FLAGS "-msse3")
|
||||
check_cxx_source_runs("
|
||||
#include <pmmintrin.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
__m128d a, b;
|
||||
double vals[2] = {0};
|
||||
a = _mm_loadu_pd(vals);
|
||||
b = _mm_hadd_pd(a,a);
|
||||
_mm_storeu_pd(vals, b);
|
||||
return 0;
|
||||
}"
|
||||
HAS_SSE3_EXTENSIONS)
|
||||
|
||||
set(CMAKE_REQUIRED_FLAGS "-msse2")
|
||||
check_cxx_source_runs("
|
||||
#include <emmintrin.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
__m128d a, b;
|
||||
double vals[2] = {0};
|
||||
a = _mm_loadu_pd(vals);
|
||||
b = _mm_add_pd(a,a);
|
||||
_mm_storeu_pd(vals,b);
|
||||
return 0;
|
||||
}"
|
||||
HAS_SSE2_EXTENSIONS)
|
||||
|
||||
set(CMAKE_REQUIRED_FLAGS "-msse")
|
||||
check_cxx_source_runs("
|
||||
#include <xmmintrin.h>
|
||||
int main()
|
||||
{
|
||||
__m128 a, b;
|
||||
float vals[4] = {0};
|
||||
a = _mm_loadu_ps(vals);
|
||||
b = a;
|
||||
b = _mm_add_ps(a,b);
|
||||
_mm_storeu_ps(vals,b);
|
||||
return 0;
|
||||
}"
|
||||
HAS_SSE_EXTENSIONS)
|
||||
ELSE()
|
||||
set(HAS_SSE_EXTENSIONS ON)
|
||||
ENDIF()
|
||||
set(SSE_FLAGS)
|
||||
|
||||
set(CMAKE_REQUIRED_FLAGS)
|
||||
set(CMAKE_REQUIRED_FLAGS "-msse3")
|
||||
check_cxx_source_runs("
|
||||
#include <pmmintrin.h>
|
||||
|
||||
if(HAS_SSE3_EXTENSIONS AND (${_max_sse_level_desired} MATCHES "3"))
|
||||
set(SSE_FLAGS "-msse3")
|
||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
ELSE()
|
||||
set(SSE_FLAGS "${SSE_FLAGS} -mfpmath=sse")
|
||||
ENDIF()
|
||||
message(STATUS "Found SSE3 extensions, using flags: ${SSE_FLAGS}")
|
||||
elseif(HAS_SSE2_EXTENSIONS AND (${_max_sse_level_desired} MATCHES "2" OR ${_max_sse_level_desired} MATCHES "3"))
|
||||
set(SSE_FLAGS "-msse2")
|
||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
ELSE()
|
||||
set(SSE_FLAGS "${SSE_FLAGS} -mfpmath=sse")
|
||||
ENDIF()
|
||||
|
||||
message(STATUS "Found SSE2 extensions, using flags: ${SSE_FLAGS}")
|
||||
elseif(HAS_SSE_EXTENSIONS AND (${_max_sse_level_desired} MATCHES "1" OR ${_max_sse_level_desired} MATCHES "2" OR ${_max_sse_level_desired} MATCHES "3"))
|
||||
set(SSE_FLAGS "-msse")
|
||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
ELSE()
|
||||
set(SSE_FLAGS "${SSE_FLAGS} -mfpmath=sse")
|
||||
ENDIF()
|
||||
|
||||
message(STATUS "Found SSE extensions, using flags: ${SSE_FLAGS}")
|
||||
endif()
|
||||
|
||||
add_definitions(${SSE_FLAGS})
|
||||
|
||||
elseif(MSVC)
|
||||
check_cxx_source_runs("
|
||||
int main()
|
||||
{
|
||||
__m128d a, b;
|
||||
double vals[2] = {0};
|
||||
a = _mm_loadu_pd(vals);
|
||||
b = _mm_hadd_pd(a,a);
|
||||
_mm_storeu_pd(vals, b);
|
||||
return 0;
|
||||
}"
|
||||
HAS_SSE3_EXTENSIONS)
|
||||
|
||||
set(CMAKE_REQUIRED_FLAGS "-msse2")
|
||||
check_cxx_source_runs("
|
||||
#include <emmintrin.h>
|
||||
|
||||
int main()
|
||||
|
@ -113,14 +51,86 @@ macro(special_check_for_sse _max_sse_level_desired)
|
|||
b = _mm_add_pd(a,a);
|
||||
_mm_storeu_pd(vals,b);
|
||||
return 0;
|
||||
}"
|
||||
HAS_SSE2_EXTENSIONS)
|
||||
if( HAS_SSE2_EXTENSIONS AND (NOT ${_max_sse_level_desired} OR ${_max_sse_level_desired} MATCHES "2"))
|
||||
message(STATUS "Found SSE2 extensions")
|
||||
set(SSE_FLAGS "/arch:SSE2 /fp:fast -D__SSE__ -D__SSE2__" )
|
||||
endif()
|
||||
|
||||
add_definitions(${SSE_FLAGS})
|
||||
}"
|
||||
HAS_SSE2_EXTENSIONS)
|
||||
|
||||
set(CMAKE_REQUIRED_FLAGS "-msse")
|
||||
check_cxx_source_runs("
|
||||
#include <xmmintrin.h>
|
||||
int main()
|
||||
{
|
||||
__m128 a, b;
|
||||
float vals[4] = {0};
|
||||
a = _mm_loadu_ps(vals);
|
||||
b = a;
|
||||
b = _mm_add_ps(a,b);
|
||||
_mm_storeu_ps(vals,b);
|
||||
return 0;
|
||||
}"
|
||||
HAS_SSE_EXTENSIONS)
|
||||
|
||||
set(CMAKE_REQUIRED_FLAGS)
|
||||
|
||||
if(HAS_SSE3_EXTENSIONS AND (${_max_sse_level_desired} MATCHES "3"))
|
||||
set(SSE_FLAGS "-msse3")
|
||||
IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "(Apple)?Clang")
|
||||
ELSE()
|
||||
set(SSE_FLAGS "${SSE_FLAGS} -mfpmath=sse")
|
||||
ENDIF()
|
||||
IF(NOT MSVC)
|
||||
message(STATUS "Found SSE3 extensions, using flags: ${SSE_FLAGS}")
|
||||
ELSE()
|
||||
message(STATUS "Found SSE3 extensions.")
|
||||
ENDIF()
|
||||
elseif(HAS_SSE2_EXTENSIONS AND (${_max_sse_level_desired} MATCHES "2" OR ${_max_sse_level_desired} MATCHES "3"))
|
||||
set(SSE_FLAGS "-msse2")
|
||||
IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "(Apple)?Clang")
|
||||
ELSE()
|
||||
set(SSE_FLAGS "${SSE_FLAGS} -mfpmath=sse")
|
||||
ENDIF()
|
||||
|
||||
IF(NOT MSVC)
|
||||
message(STATUS "Found SSE2 extensions, using flags: ${SSE_FLAGS}")
|
||||
ELSE()
|
||||
message(STATUS "Found SSE2 extensions.")
|
||||
ENDIF()
|
||||
elseif(HAS_SSE_EXTENSIONS AND (${_max_sse_level_desired} MATCHES "1" OR ${_max_sse_level_desired} MATCHES "2" OR ${_max_sse_level_desired} MATCHES "3"))
|
||||
set(SSE_FLAGS "-msse")
|
||||
IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "(Apple)?Clang")
|
||||
ELSE()
|
||||
set(SSE_FLAGS "${SSE_FLAGS} -mfpmath=sse")
|
||||
ENDIF()
|
||||
IF(NOT MSVC)
|
||||
message(STATUS "Found SSE extensions, using flags: ${SSE_FLAGS}")
|
||||
ELSE()
|
||||
message(STATUS "Found SSE extensions.")
|
||||
ENDIF()
|
||||
endif()
|
||||
|
||||
IF(NOT MSVC)
|
||||
add_definitions(${SSE_FLAGS})
|
||||
ENDIF()
|
||||
|
||||
elseif(MSVC) #todo: remove this unused check for SSE.
|
||||
check_cxx_source_runs("
|
||||
#include <emmintrin.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
__m128d a, b;
|
||||
double vals[2] = {0};
|
||||
a = _mm_loadu_pd(vals);
|
||||
b = _mm_add_pd(a,a);
|
||||
_mm_storeu_pd(vals,b);
|
||||
return 0;
|
||||
}"
|
||||
HAS_SSE2_EXTENSIONS)
|
||||
if( HAS_SSE2_EXTENSIONS AND (NOT ${_max_sse_level_desired} OR ${_max_sse_level_desired} MATCHES "2"))
|
||||
message(STATUS "Found SSE2 extensions")
|
||||
set(SSE_FLAGS "/arch:SSE2 /fp:fast -D__SSE__ -D__SSE2__" )
|
||||
endif()
|
||||
|
||||
add_definitions(${SSE_FLAGS})
|
||||
endif()
|
||||
endmacro(special_check_for_sse)
|
||||
|
||||
|
@ -201,4 +211,3 @@ macro(_special_list_to_string _string _list)
|
|||
endif(${_len} GREATER 0)
|
||||
endforeach(_item)
|
||||
endmacro(_special_list_to_string)
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
# Seems like a good place to add version specific compiler flags too.
|
||||
|
||||
IF(NOT CONFIG_HAS_BEEN_RUN_BEFORE)
|
||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "(Apple)?Clang")
|
||||
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++")
|
||||
#SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility-inlines-hidden")
|
||||
ENDIF()
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
/*/Release/
|
||||
/x64/
|
||||
/*/x64/
|
||||
/vcpkg/
|
||||
/build/
|
||||
|
||||
# Windows_build
|
||||
*.dll
|
||||
|
|
|
@ -0,0 +1,132 @@
|
|||
# Build MegaGlest on Windows.
|
||||
# Author: James Sherratt.
|
||||
param(${vcpkg-location})
|
||||
|
||||
$sword = [char]::ConvertFromUtf32(0x2694)
|
||||
Write-Output "=====$sword MegaGlest $sword====="
|
||||
""
|
||||
<#
|
||||
.SYNOPSIS
|
||||
#
|
||||
|
||||
.DESCRIPTION
|
||||
Test if a command exists.
|
||||
|
||||
.PARAMETER cmdName
|
||||
Comamnd to test
|
||||
|
||||
.PARAMETER errorAdvice
|
||||
Error advice to give user if command fails
|
||||
|
||||
.PARAMETER errorAction
|
||||
(optional) Etion after error
|
||||
|
||||
.EXAMPLE
|
||||
Test-Command "7z" "7z not found. Please install from 7zip.org" 'Write-Warning "7zip will not be used."'
|
||||
|
||||
.NOTES
|
||||
General notes
|
||||
#>
|
||||
function Test-Command {
|
||||
param(
|
||||
$cmdName,
|
||||
$errorAdvice,
|
||||
$errorAction
|
||||
)
|
||||
|
||||
if (Get-Command $cmdName -errorAction SilentlyContinue) {
|
||||
"Found $cmdName."
|
||||
""
|
||||
}
|
||||
else {
|
||||
"The command '$cmdName' does not exist."
|
||||
"$errorAdvice"
|
||||
""
|
||||
|
||||
if ( !$errorAction ) {
|
||||
Exit
|
||||
}
|
||||
else {
|
||||
Invoke-Expression $errorAction
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function Write-Title {
|
||||
param (
|
||||
$titleText
|
||||
)
|
||||
$titleText
|
||||
"-" * $titleText.Length
|
||||
}
|
||||
|
||||
Write-Title "Updating git source"
|
||||
|
||||
Test-Command "git" "Please download and install git-scm https://git-scm.com/"
|
||||
git pull
|
||||
""
|
||||
|
||||
Write-Title "Setup vcpkg"
|
||||
Test-Command "cmake" "Please download and install CMake: https://cmake.org/download/. (For 64 bit windows, select 'cmake-x.y.z-windows-x86_64.msi'.)"
|
||||
|
||||
if ( !${vcpkg-location} ) {
|
||||
${vcpkg-location} = Join-Path $PSScriptRoot \vcpkg
|
||||
"Vcpkg location not set. Setting it to ${vcpkg-location}."
|
||||
}
|
||||
else {
|
||||
${vcpkg-location} = $(Resolve-Path ${vcpkg-location}).ToString()
|
||||
}
|
||||
|
||||
if ( Test-Path ${vcpkg-location} ) {
|
||||
"Found vcpkg."
|
||||
}
|
||||
else {
|
||||
"Vcpkg not found. Cloning. https://github.com/microsoft/vcpkg.git."
|
||||
git clone "https://github.com/microsoft/vcpkg.git" ${vcpkg-location}
|
||||
"Installing vcpkg."
|
||||
& "$(Join-Path ${vcpkg-location} bootstrap-vcpkg.bat)"
|
||||
}
|
||||
|
||||
"Installing vcpkg and MegaGlest dependencies."
|
||||
Set-Location ${vcpkg-location}
|
||||
& "$(Join-Path $PSScriptRoot install-deps-vcpkg.ps1)"
|
||||
if (!$?) {
|
||||
"Installing deps with vcpkg failed. Please check your vcpkg git repo is configured correctly."
|
||||
Set-Location $PSScriptRoot
|
||||
Exit
|
||||
}
|
||||
Set-Location $PSScriptRoot
|
||||
""
|
||||
|
||||
Write-Title "Build MegaGlest"
|
||||
|
||||
$toolchainPath = $(Join-Path ${vcpkg-location} \scripts\buildsystems\vcpkg.cmake)
|
||||
$buildFolder = $(Join-Path $PSScriptRoot build)
|
||||
$topLevelTargetDir = $(Resolve-Path $(Join-Path $PSScriptRoot ../../)).ToString()
|
||||
|
||||
$vsVersion=(msbuild --version | select -Last 1).Split(".")[0] -as [int]
|
||||
|
||||
if ($vsVersion -eq 17) {
|
||||
$vsProjType = "Visual Studio 17 2022"
|
||||
}
|
||||
elseif ($vsVersion -eq 16) {
|
||||
$vsProjType = "Visual Studio 16 2019"
|
||||
}
|
||||
else {
|
||||
$vsProjType = "Visual Studio 17 2022"
|
||||
}
|
||||
|
||||
cmake --no-warn-unused-cli -DCMAKE_TOOLCHAIN_FILE:STRING=$toolchainPath -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE "-H$topLevelTargetDir" "-B$buildFolder" -G $vsProjType -T host=x64 -A x64
|
||||
cmake --build $buildFolder --config Release --target ALL_BUILD
|
||||
|
||||
|
||||
if ($?) {
|
||||
"Build succeeded. megaglest.exe, megaglest_editor.exe and megaglest_g3dviewer.exe can be found in mk/windoze/."
|
||||
}
|
||||
else {
|
||||
"Build failed. Please make sure you have installed VS C++ tools (2019 or 2022): https://visualstudio.microsoft.com/downloads ."
|
||||
"If you have installed all the relevant tools and you still can't build MegaGlest, try running '.\clean-build.ps1'. Then run this script again."
|
||||
"Make sure this script is running in developer powershell: https://docs.microsoft.com/en-us/visualstudio/ide/reference/command-prompt-powershell ."
|
||||
"If the language of your version of windows is not english, you may need to install the english language pack in the visual studio installer (because microsoft is racist): https://docs.microsoft.com/en-us/visualstudio/install/modify-visual-studio?view=vs-2022#modify-language-packs ."
|
||||
"If MegaGlest still fails to build, please help us by submitting a bug report at https://github.com/MegaGlest/megaglest-source/issues."
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
"Cleaning build files."
|
||||
Remove-Item $(Join-Path $PSScriptRoot *.exe)
|
||||
Remove-Item -Recurse $(Join-Path $PSScriptRoot build\)
|
||||
"Cleaning build files completed."
|
|
@ -0,0 +1,2 @@
|
|||
"Installing MegaGlest deps."
|
||||
.\vcpkg.exe install --disable-metrics 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 wxwidgets:x64-windows-static xerces-c:x64-windows-static zlib:x64-windows-static
|
|
@ -46,7 +46,7 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER)
|
|||
# It was noticed that when using MinGW gcc it is essential that 'core' is mentioned before 'base'.
|
||||
# Optimal order most likely is gl > core > base, in some cases it may do difference.
|
||||
FIND_PACKAGE(wxWidgets REQUIRED COMPONENTS gl core base)
|
||||
IF(UNIX)
|
||||
IF(UNIX OR WIN32)
|
||||
# wxWidgets include (this will do all the magic to configure everything)
|
||||
INCLUDE( ${wxWidgets_USE_FILE} )
|
||||
|
||||
|
@ -62,7 +62,9 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER)
|
|||
MESSAGE(STATUS " wxWidgets: ${wxWidgets_INCLUDE_DIRS} ;/; ${wxWidgets_LIBRARIES}")
|
||||
ENDIF()
|
||||
|
||||
find_package(PkgConfig REQUIRED)
|
||||
IF(NOT MSVC)
|
||||
find_package(PkgConfig REQUIRED)
|
||||
ENDIF()
|
||||
IF(FORCE_STREFLOP_SOFTWRAPPER)
|
||||
pkg_search_module(STREFLOP streflop-soft)
|
||||
ELSE()
|
||||
|
@ -96,34 +98,36 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER)
|
|||
ENDIF()
|
||||
|
||||
IF(WIN32)
|
||||
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwx_mswu-2.8-i586-mingw32msvc.dll.a)
|
||||
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwx_mswu_gl-2.8-i586-mingw32msvc.dll.a)
|
||||
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxpng-2.8-i586-mingw32msvc.a)
|
||||
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxjpeg-2.8-i586-mingw32msvc.a)
|
||||
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxtiff-2.8-i586-mingw32msvc.a)
|
||||
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxzlib-2.8-i586-mingw32msvc.a)
|
||||
IF(NOT MSVC)
|
||||
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwx_mswu-2.8-i586-mingw32msvc.dll.a)
|
||||
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwx_mswu_gl-2.8-i586-mingw32msvc.dll.a)
|
||||
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxpng-2.8-i586-mingw32msvc.a)
|
||||
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxjpeg-2.8-i586-mingw32msvc.a)
|
||||
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxtiff-2.8-i586-mingw32msvc.a)
|
||||
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxzlib-2.8-i586-mingw32msvc.a)
|
||||
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/include/)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/wx/include/i586-mingw32msvc-msw-unicode-release-static-2.8)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/include/)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/wx/include/i586-mingw32msvc-msw-unicode-release-static-2.8)
|
||||
|
||||
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)
|
||||
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)
|
||||
|
||||
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)
|
||||
|
||||
link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/lib)
|
||||
link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/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)
|
||||
|
||||
link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/lib)
|
||||
link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
#########################################################################################
|
||||
|
@ -203,6 +207,11 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER)
|
|||
|
||||
ADD_EXECUTABLE(${TARGET_NAME} ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES})
|
||||
|
||||
IF(WIN32)
|
||||
# Must come after ADD_EXECUTABLE.
|
||||
TARGET_SOURCES(${TARGET_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/mk/windoze/g3d_viewer.rc)
|
||||
ENDIF()
|
||||
|
||||
IF(WANT_USE_STREFLOP AND NOT STREFLOP_FOUND)
|
||||
TARGET_LINK_LIBRARIES(${TARGET_NAME} streflop)
|
||||
ENDIF()
|
||||
|
|
|
@ -867,15 +867,7 @@ void MainWindow::onMenuFileLoad(wxCommandEvent &event){
|
|||
if(fileDialog->ShowModal()==wxID_OK){
|
||||
modelPathList.clear();
|
||||
string file;
|
||||
#ifdef WIN32
|
||||
const wxWX2MBbuf tmp_buf = wxConvCurrent->cWX2MB(fileDialog->GetPath());
|
||||
file = tmp_buf;
|
||||
|
||||
auto_ptr<wchar_t> wstr(Ansi2WideString(file.c_str()));
|
||||
file = utf8_encode(wstr.get());
|
||||
#else
|
||||
file = (const char*)wxFNCONV(fileDialog->GetPath().c_str());
|
||||
#endif
|
||||
|
||||
//loadModel((const char*)wxFNCONV(fileDialog->GetPath().c_str()));
|
||||
loadModel(file);
|
||||
|
@ -903,14 +895,7 @@ void MainWindow::onMenuFileLoadParticleXML(wxCommandEvent &event){
|
|||
if(fileDialog->ShowModal()==wxID_OK){
|
||||
//string path = (const char*)wxFNCONV(fileDialog->GetPath().c_str());
|
||||
string file;
|
||||
#ifdef WIN32
|
||||
const wxWX2MBbuf tmp_buf = wxConvCurrent->cWX2MB(fileDialog->GetPath());
|
||||
file = tmp_buf;
|
||||
auto_ptr<wchar_t> wstr(Ansi2WideString(file.c_str()));
|
||||
file = utf8_encode(wstr.get());
|
||||
#else
|
||||
file = (const char*)wxFNCONV(fileDialog->GetPath().c_str());
|
||||
#endif
|
||||
|
||||
loadParticle(file);
|
||||
}
|
||||
|
@ -937,14 +922,7 @@ void MainWindow::onMenuFileLoadProjectileParticleXML(wxCommandEvent &event){
|
|||
if(fileDialog->ShowModal()==wxID_OK){
|
||||
//string path = (const char*)wxFNCONV(fileDialog->GetPath().c_str());
|
||||
string file;
|
||||
#ifdef WIN32
|
||||
const wxWX2MBbuf tmp_buf = wxConvCurrent->cWX2MB(fileDialog->GetPath());
|
||||
file = tmp_buf;
|
||||
auto_ptr<wchar_t> wstr(Ansi2WideString(file.c_str()));
|
||||
file = utf8_encode(wstr.get());
|
||||
#else
|
||||
file = (const char*)wxFNCONV(fileDialog->GetPath().c_str());
|
||||
#endif
|
||||
|
||||
loadProjectileParticle(file);
|
||||
}
|
||||
|
@ -971,15 +949,7 @@ void MainWindow::onMenuFileLoadSplashParticleXML(wxCommandEvent &event){
|
|||
if(fileDialog->ShowModal()==wxID_OK){
|
||||
//string path = (const char*)wxFNCONV(fileDialog->GetPath().c_str());
|
||||
string file;
|
||||
#ifdef WIN32
|
||||
const wxWX2MBbuf tmp_buf = wxConvCurrent->cWX2MB(fileDialog->GetPath());
|
||||
file = tmp_buf;
|
||||
|
||||
auto_ptr<wchar_t> wstr(Ansi2WideString(file.c_str()));
|
||||
file = utf8_encode(wstr.get());
|
||||
#else
|
||||
file = (const char*)wxFNCONV(fileDialog->GetPath().c_str());
|
||||
#endif
|
||||
|
||||
loadSplashParticle(file);
|
||||
}
|
||||
|
@ -2523,21 +2493,7 @@ if( hasCommandArgument(knownArgCount, (wxChar**)&GAME_ARGS[0], (const char *)tmp
|
|||
}
|
||||
|
||||
if(argc == 2 && argv[1][0] != '-') {
|
||||
|
||||
//#if defined(__MINGW32__)
|
||||
#ifdef WIN32
|
||||
const wxWX2MBbuf tmp_buf = wxConvCurrent->cWX2MB(wxFNCONV(argv[1]));
|
||||
modelPath = tmp_buf;
|
||||
auto_ptr<wchar_t> wstr(Ansi2WideString(modelPath.c_str()));
|
||||
modelPath = utf8_encode(wstr.get());
|
||||
#else
|
||||
modelPath = static_cast<const char*>(WX2CHR(argv[1]));
|
||||
#endif
|
||||
|
||||
//#else
|
||||
// modelPath = wxFNCONV(argv[1]);
|
||||
//#endif
|
||||
|
||||
}
|
||||
|
||||
//#if defined(__MINGW32__)
|
||||
|
@ -2552,17 +2508,7 @@ if( hasCommandArgument(knownArgCount, (wxChar**)&GAME_ARGS[0], (const char *)tmp
|
|||
//wxString path_separator = wxFileName::GetPathSeparator();
|
||||
//exe_path = exe_path.BeforeLast(path_separator[0]);
|
||||
//exe_path += path_separator;
|
||||
|
||||
//#if defined(__MINGW32__)
|
||||
#ifdef WIN32
|
||||
const wxWX2MBbuf tmp_buf = wxConvCurrent->cWX2MB(wxFNCONV(exe_path));
|
||||
string appPath = tmp_buf;
|
||||
|
||||
auto_ptr<wchar_t> wstr(Ansi2WideString(appPath.c_str()));
|
||||
appPath = utf8_encode(wstr.get());
|
||||
#else
|
||||
string appPath(static_cast<const char*>(WX2CHR(exe_path)));
|
||||
#endif
|
||||
|
||||
//#else
|
||||
// appPath = wxFNCONV(exe_path);
|
||||
|
|
|
@ -139,7 +139,10 @@ IF(BUILD_MEGAGLEST)
|
|||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
find_package(PkgConfig REQUIRED)
|
||||
|
||||
IF(NOT MSVC)
|
||||
find_package(PkgConfig REQUIRED)
|
||||
ENDIF()
|
||||
IF(FORCE_STREFLOP_SOFTWRAPPER)
|
||||
pkg_search_module(STREFLOP streflop-soft)
|
||||
ELSE()
|
||||
|
@ -261,7 +264,7 @@ IF(BUILD_MEGAGLEST)
|
|||
add_custom_target(run ALL DEPENDS mg.tmp)
|
||||
ENDIF()
|
||||
|
||||
IF(WIN32)
|
||||
IF(WIN32 AND NOT MSVC)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,-subsystem,console -mconsole")
|
||||
ENDIF()
|
||||
|
||||
|
@ -294,7 +297,26 @@ 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)
|
||||
TARGET_SOURCES(${TARGET_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/mk/windoze/glest.rc)
|
||||
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)
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -32,7 +32,7 @@ IF(BUILD_MEGAGLEST_MAP_EDITOR)
|
|||
# It was noticed that when using MinGW gcc it is essential that 'core' is mentioned before 'base'.
|
||||
# Optimal order most likely is gl > core > base, in some cases it may do difference.
|
||||
FIND_PACKAGE(wxWidgets REQUIRED COMPONENTS gl core base)
|
||||
IF(UNIX)
|
||||
IF(UNIX OR WIN32)
|
||||
# wxWidgets include (this will do all the magic to configure everything)
|
||||
INCLUDE( ${wxWidgets_USE_FILE} )
|
||||
|
||||
|
@ -49,37 +49,42 @@ IF(BUILD_MEGAGLEST_MAP_EDITOR)
|
|||
ENDIF()
|
||||
|
||||
IF(WIN32)
|
||||
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwx_mswu-2.8-i586-mingw32msvc.dll.a)
|
||||
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwx_mswu_gl-2.8-i586-mingw32msvc.dll.a)
|
||||
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxpng-2.8-i586-mingw32msvc.a)
|
||||
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxjpeg-2.8-i586-mingw32msvc.a)
|
||||
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxtiff-2.8-i586-mingw32msvc.a)
|
||||
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxzlib-2.8-i586-mingw32msvc.a)
|
||||
IF(NOT MSVC)
|
||||
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwx_mswu-2.8-i586-mingw32msvc.dll.a)
|
||||
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwx_mswu_gl-2.8-i586-mingw32msvc.dll.a)
|
||||
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxpng-2.8-i586-mingw32msvc.a)
|
||||
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxjpeg-2.8-i586-mingw32msvc.a)
|
||||
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxtiff-2.8-i586-mingw32msvc.a)
|
||||
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwxzlib-2.8-i586-mingw32msvc.a)
|
||||
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/include/)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/wx/include/i586-mingw32msvc-msw-unicode-release-static-2.8)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/include/)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/wx/include/i586-mingw32msvc-msw-unicode-release-static-2.8)
|
||||
|
||||
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)
|
||||
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)
|
||||
|
||||
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)
|
||||
|
||||
link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/lib)
|
||||
link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/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)
|
||||
|
||||
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/xerces-c-src_2_8_0/lib)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
find_package(PkgConfig REQUIRED)
|
||||
IF(NOT MSVC)
|
||||
find_package(PkgConfig REQUIRED)
|
||||
ENDIF()
|
||||
IF(FORCE_STREFLOP_SOFTWRAPPER)
|
||||
pkg_search_module(STREFLOP streflop-soft)
|
||||
ELSE()
|
||||
|
@ -182,15 +187,25 @@ IF(BUILD_MEGAGLEST_MAP_EDITOR)
|
|||
|
||||
SET_SOURCE_FILES_PROPERTIES(${MG_INCLUDE_FILES} PROPERTIES HEADER_FILE_ONLY 1)
|
||||
|
||||
ADD_EXECUTABLE(${TARGET_NAME} ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES})
|
||||
IF(MSVC)
|
||||
# Needed to build a window app and not just a upnp console app. Not really sure why.
|
||||
ADD_EXECUTABLE(${TARGET_NAME} WIN32 ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES})
|
||||
ELSE()
|
||||
ADD_EXECUTABLE(${TARGET_NAME} ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES})
|
||||
ENDIF()
|
||||
|
||||
IF(WIN32)
|
||||
# Must come after ADD_EXECUTABLE.
|
||||
TARGET_SOURCES(${TARGET_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/mk/windoze/glest_editor.rc)
|
||||
ENDIF()
|
||||
|
||||
SET(MG_STREFLOP "")
|
||||
IF(WANT_USE_STREFLOP)
|
||||
SET(MG_STREFLOP "streflop")
|
||||
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)
|
||||
# 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()
|
||||
|
||||
IF(WANT_USE_STREFLOP AND NOT STREFLOP_FOUND)
|
||||
|
|
|
@ -706,13 +706,7 @@ void MainWindow::onMenuFileLoad(wxCommandEvent &event) {
|
|||
fileDialog->SetMessage(wxT("Select Glestmap to load"));
|
||||
fileDialog->SetWildcard(wxT("Glest&Mega Map (*.gbm *.mgm)|*.gbm;*.mgm|Glest Map (*.gbm)|*.gbm|Mega Map (*.mgm)|*.mgm"));
|
||||
if (fileDialog->ShowModal() == wxID_OK) {
|
||||
#ifdef WIN32
|
||||
const wxWX2MBbuf tmp_buf = wxConvCurrent->cWX2MB(wxFNCONV(fileDialog->GetPath()));
|
||||
currentFile = tmp_buf;
|
||||
|
||||
auto_ptr<wchar_t> wstr(Ansi2WideString(currentFile.c_str()));
|
||||
currentFile = utf8_encode(wstr.get());
|
||||
#elif wxCHECK_VERSION(2, 9, 1)
|
||||
#ifdef wxCHECK_VERSION(2, 9, 1)
|
||||
currentFile = fileDialog->GetPath().ToStdString();
|
||||
#else
|
||||
const wxWX2MBbuf tmp_buf = wxConvCurrent->cWX2MB(fileDialog->GetPath());
|
||||
|
@ -782,13 +776,8 @@ void MainWindow::onMenuFileSaveAs(wxCommandEvent &event) {
|
|||
|
||||
fd.SetWildcard(wxT("MegaGlest Map (*.mgm)|*.mgm|Glest Map (*.gbm)|*.gbm"));
|
||||
if (fd.ShowModal() == wxID_OK) {
|
||||
#ifdef WIN32
|
||||
const wxWX2MBbuf tmp_buf = wxConvCurrent->cWX2MB(wxFNCONV(fd.GetPath()));
|
||||
currentFile = tmp_buf;
|
||||
|
||||
auto_ptr<wchar_t> wstr(Ansi2WideString(currentFile.c_str()));
|
||||
currentFile = utf8_encode(wstr.get());
|
||||
#elif wxCHECK_VERSION(2, 9, 1)
|
||||
#ifdef wxCHECK_VERSION(2, 9, 1)
|
||||
currentFile = fd.GetPath().ToStdString();
|
||||
#else
|
||||
const wxWX2MBbuf tmp_buf = wxConvCurrent->cWX2MB(fd.GetPath());
|
||||
|
@ -1062,13 +1051,7 @@ void MainWindow::onMenuEditImportHeights(wxCommandEvent &event) {
|
|||
wxString savedDir=fileDialog->GetDirectory();
|
||||
fileDialog->SetDirectory(heightMapDirectory);
|
||||
if (fileDialog->ShowModal() == wxID_OK) {
|
||||
#ifdef WIN32
|
||||
const wxWX2MBbuf tmp_buf = wxConvCurrent->cWX2MB(wxFNCONV(fileDialog->GetPath()));
|
||||
currentFile = tmp_buf;
|
||||
|
||||
auto_ptr<wchar_t> wstr(Ansi2WideString(currentFile.c_str()));
|
||||
currentFile = utf8_encode(wstr.get());
|
||||
#elif wxCHECK_VERSION(2, 9, 1)
|
||||
#ifdef wxCHECK_VERSION(2, 9, 1)
|
||||
currentFile = fileDialog->GetPath().ToStdString();
|
||||
#else
|
||||
const wxWX2MBbuf tmp_buf = wxConvCurrent->cWX2MB(fileDialog->GetPath());
|
||||
|
@ -1114,13 +1097,7 @@ void MainWindow::onMenuEditExportHeights(wxCommandEvent &event) {
|
|||
#endif
|
||||
fd.SetDirectory(heightMapDirectory);
|
||||
if (fd.ShowModal() == wxID_OK) {
|
||||
#ifdef WIN32
|
||||
const wxWX2MBbuf tmp_buf = wxConvCurrent->cWX2MB(wxFNCONV(fd.GetPath()));
|
||||
currentFile = tmp_buf;
|
||||
|
||||
auto_ptr<wchar_t> wstr(Ansi2WideString(currentFile.c_str()));
|
||||
currentFile = utf8_encode(wstr.get());
|
||||
#elif wxCHECK_VERSION(2, 9, 1)
|
||||
#if wxCHECK_VERSION(2, 9, 1)
|
||||
currentFile = fd.GetPath().ToStdString();
|
||||
#else
|
||||
const wxWX2MBbuf tmp_buf = wxConvCurrent->cWX2MB(fd.GetPath());
|
||||
|
@ -1721,12 +1698,7 @@ bool SimpleDialog::show(const string &title, bool wide) {
|
|||
if(m_returnCode==wxID_CANCEL) return false; // don't change values if canceled
|
||||
|
||||
for (unsigned int i = 0; i < texts.size(); ++i) {
|
||||
#ifdef WIN32
|
||||
const wxWX2MBbuf tmp_buf = wxConvCurrent->cWX2MB(wxFNCONV(texts[i]->GetValue()));
|
||||
values[i].second = tmp_buf;
|
||||
#else
|
||||
values[i].second = texts[i]->GetValue().ToAscii();
|
||||
#endif
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -1782,15 +1754,7 @@ bool App::OnInit() {
|
|||
//exe_path += path_separator;
|
||||
|
||||
string appPath;
|
||||
//#if defined(__MINGW32__)
|
||||
|
||||
#ifdef WIN32
|
||||
const wxWX2MBbuf tmp_buf = wxConvCurrent->cWX2MB(wxFNCONV(exe_path));
|
||||
appPath = tmp_buf;
|
||||
|
||||
auto_ptr<wchar_t> wstr(Ansi2WideString(appPath.c_str()));
|
||||
appPath = utf8_encode(wstr.get());
|
||||
#elif wxCHECK_VERSION(2, 9, 1)
|
||||
#ifdef wxCHECK_VERSION(2, 9, 1)
|
||||
appPath = exe_path.ToStdString();
|
||||
#else
|
||||
appPath = wxFNCONV(exe_path);
|
||||
|
|
|
@ -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(NOT MSVC)
|
||||
find_package(PkgConfig REQUIRED)
|
||||
ENDIF()
|
||||
|
||||
IF(FORCE_STREFLOP_SOFTWRAPPER)
|
||||
pkg_search_module(STREFLOP streflop-soft)
|
||||
ELSE()
|
||||
|
@ -51,29 +54,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()
|
||||
|
@ -118,13 +123,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 +137,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 +155,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 +296,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 MSVC)
|
||||
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(MSVC)
|
||||
ADD_COMPILE_DEFINITIONS(MINIUPNP_STATICLIB)
|
||||
endif()
|
||||
|
||||
SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/miniupnpc)
|
||||
else()
|
||||
|
@ -425,7 +432,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 +502,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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -16,9 +16,6 @@
|
|||
#include "conversion.h"
|
||||
#include <algorithm>
|
||||
#include "util.h"
|
||||
#ifdef WIN32
|
||||
#include "glext.h"
|
||||
#endif
|
||||
|
||||
#include "leak_dumper.h"
|
||||
|
||||
|
|
|
@ -13,7 +13,15 @@ INCLUDE_DIRECTORIES(
|
|||
|
||||
SET(STREFLOP_SRC ${STREFLOP_GLOBBED_CPP})
|
||||
|
||||
IF(MSVC)
|
||||
ENABLE_LANGUAGE(ASM_MASM)
|
||||
SET(STREFLOP_SRC ${STREFLOP_SRC} FPUSettings.asm)
|
||||
ENDIF()
|
||||
|
||||
ADD_LIBRARY(streflop STATIC EXCLUDE_FROM_ALL
|
||||
${STREFLOP_SRC}
|
||||
)
|
||||
set_target_properties(streflop PROPERTIES COMPILE_FLAGS "${PIC_FLAG}")
|
||||
|
||||
IF(NOT MSVC)
|
||||
set_target_properties(streflop PROPERTIES COMPILE_FLAGS "${PIC_FLAG}")
|
||||
ENDIF()
|
||||
|
|
|
@ -15,6 +15,13 @@ IF(BUILD_MEGAGLEST_MODEL_IMPORT_EXPORT_TOOLS)
|
|||
ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
|
||||
|
||||
find_package(LibXml2)
|
||||
|
||||
IF(WIN32)
|
||||
# Need to explicitly find iconv with vcpkg.
|
||||
find_package(Iconv)
|
||||
SET(LIBXML2_LIBRARIES ${LIBXML2_LIBRARIES} Iconv::Iconv)
|
||||
ENDIF()
|
||||
|
||||
IF(LIBXML2_FOUND)
|
||||
include_directories(${CMAKE_INCLUDE_PATH} ${LIBXML2_INCLUDE_DIR})
|
||||
add_executable(xml2g xml2g.c g3dv4.h)
|
||||
|
|
Loading…
Reference in New Issue