From b405ce86ca63c4bb7b16e03cdfb7ab9543c425f8 Mon Sep 17 00:00:00 2001 From: Jammyjamjamman Date: Sun, 13 Jun 2021 19:04:29 +0100 Subject: [PATCH] Get map editor and model viewer building with VS cmake builds * Map editor and model viewer build, but only as "Release" build. * Unwanted flags not set for msbuild, such as FPIC, -g3, -O3, -sse... * Wanted flags set for msbuild e.g. /arch:SSE2 /fp:fast -D__SSE__ -D__SSE2__ * Allow including wx, used for vcpkg wx. * Mapeditor is WIN32 exe for VS_BUILD. (Not sure why this is needed...) * g3d viewer and map editor mains edited to remove unnecessary windows- only code(, for strings). --- CMakeLists.txt | 47 ++++++++------ mk/cmake/Modules/SpecialMacros.cmake | 4 +- source/g3d_viewer/CMakeLists.txt | 54 ++++++++-------- source/g3d_viewer/main.cpp | 54 ---------------- source/glest_map_editor/CMakeLists.txt | 64 +++++++++++-------- source/glest_map_editor/main.cpp | 46 ++----------- .../sources/streflop/CMakeLists.txt | 5 +- 7 files changed, 101 insertions(+), 173 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 08ef1143..adc56b8e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -37,8 +37,9 @@ 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 @@ -64,8 +65,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" OFF) -OPTION(BUILD_MEGAGLEST_MAP_EDITOR "Build map editor" OFF) +OPTION(BUILD_MEGAGLEST_MODEL_VIEWER "Build model viewer" ON) +OPTION(BUILD_MEGAGLEST_MAP_EDITOR "Build map editor" ON) 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) @@ -123,10 +124,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 VS_BUILD) + 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. @@ -231,22 +234,24 @@ size_t stack_depth = backtrace(stack_addrs, max_depth); ELSE() message(STATUS "**WARNING DID NOT Find GCC backtrace lib") ENDIF() + + IF(NOT VS_BUILD) + # Debug compiler flags + SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g3") - # 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 + ENDIF() - # 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 with debug info compiler flags + SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O3 ${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -g -O3 ") - # 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 + # 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 diff --git a/mk/cmake/Modules/SpecialMacros.cmake b/mk/cmake/Modules/SpecialMacros.cmake index 61b3eacb..983f27ab 100644 --- a/mk/cmake/Modules/SpecialMacros.cmake +++ b/mk/cmake/Modules/SpecialMacros.cmake @@ -20,7 +20,8 @@ macro(special_check_for_sse _max_sse_level_desired) include(CheckCXXSourceRuns) include(CheckCSourceRuns) - IF(NOT MINGW) + # Add vs_build to stop flags added to msbuild. + IF(NOT MINGW AND NOT VS_BUILD) if( CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX ) set(SSE_FLAGS) @@ -201,4 +202,3 @@ macro(_special_list_to_string _string _list) endif(${_len} GREATER 0) endforeach(_item) endmacro(_special_list_to_string) - diff --git a/source/g3d_viewer/CMakeLists.txt b/source/g3d_viewer/CMakeLists.txt index e0910bf9..46ef636a 100644 --- a/source/g3d_viewer/CMakeLists.txt +++ b/source/g3d_viewer/CMakeLists.txt @@ -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} ) @@ -98,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 VS_BUILD) + 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() ######################################################################################### diff --git a/source/g3d_viewer/main.cpp b/source/g3d_viewer/main.cpp index 2a9ec0c2..92ebe314 100644 --- a/source/g3d_viewer/main.cpp +++ b/source/g3d_viewer/main.cpp @@ -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 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 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 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 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 wstr(Ansi2WideString(modelPath.c_str())); - modelPath = utf8_encode(wstr.get()); -#else modelPath = static_cast(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 wstr(Ansi2WideString(appPath.c_str())); - appPath = utf8_encode(wstr.get()); -#else string appPath(static_cast(WX2CHR(exe_path))); -#endif //#else // appPath = wxFNCONV(exe_path); diff --git a/source/glest_map_editor/CMakeLists.txt b/source/glest_map_editor/CMakeLists.txt index 2b8f5eec..f1f0b3b1 100644 --- a/source/glest_map_editor/CMakeLists.txt +++ b/source/glest_map_editor/CMakeLists.txt @@ -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,34 +49,37 @@ 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 VS_BUILD) + 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() IF(PKG_CONFIG_FOUND) @@ -184,7 +187,12 @@ 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(VS_BUILD) + # 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() SET(MG_STREFLOP "") IF(WANT_USE_STREFLOP) @@ -192,7 +200,7 @@ IF(BUILD_MEGAGLEST_MAP_EDITOR) 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) diff --git a/source/glest_map_editor/main.cpp b/source/glest_map_editor/main.cpp index d1606df2..50676528 100644 --- a/source/glest_map_editor/main.cpp +++ b/source/glest_map_editor/main.cpp @@ -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 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 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 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 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 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); diff --git a/source/shared_lib/sources/streflop/CMakeLists.txt b/source/shared_lib/sources/streflop/CMakeLists.txt index e805feb8..3bc4338d 100644 --- a/source/shared_lib/sources/streflop/CMakeLists.txt +++ b/source/shared_lib/sources/streflop/CMakeLists.txt @@ -21,4 +21,7 @@ ENDIF() ADD_LIBRARY(streflop STATIC EXCLUDE_FROM_ALL ${STREFLOP_SRC} ) -set_target_properties(streflop PROPERTIES COMPILE_FLAGS "${PIC_FLAG}") + +IF(NOT VS_BUILD) + set_target_properties(streflop PROPERTIES COMPILE_FLAGS "${PIC_FLAG}") +ENDIF()