This commit is contained in:
James Sherratt 2022-08-24 20:03:40 +01:00
parent 1c8a6f3d8b
commit c46d1260f5
7 changed files with 48 additions and 50 deletions

View File

@ -2,35 +2,8 @@ IF(WIN32)
# Windows cmake version needs to be higher - for CMAKE_MSVC_RUNTIME_LIBRARY.
CMAKE_MINIMUM_REQUIRED( VERSION 3.15 )
STRING(SUBSTRING ${CMAKE_GENERATOR} 0 13 GENERATOR_TYPE)
SET(VS_BUILD GENERATOR_TYPE STREQUAL "Visual Studio" CACHE STRING "Target visual studio.")
IF(VS_BUILD)
# This must be Set before "PROJECT()" is called.
set(VCPKG_TARGET_TRIPLET "x64-windows-static")
# 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()
# This must be Set before "PROJECT()" is called.
SET(VCPKG_TARGET_TRIPLET "x64-windows-static")
ELSE()
CMAKE_MINIMUM_REQUIRED( VERSION 3.5 )
ENDIF()
@ -55,6 +28,31 @@ 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)
@ -127,7 +125,7 @@ FOREACH(ver_var VER_MAJOR;VER_MINOR;VER_PATCH;MEGAGLEST_VERSION)
ENDFOREACH()
MESSAGE(STATUS "Detected MegaGlest Version is [v${MEGAGLEST_VERSION}] ")
IF(NOT VS_BUILD)
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
@ -140,19 +138,19 @@ IF(APPLE)
include(${PROJECT_SOURCE_DIR}/mk/macos/CMakeLists.txt)
ENDIF(APPLE)
IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW OR VS_BUILD)
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(VS_BUILD)
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
IF(NOT VS_BUILD)
IF(NOT MSVC)
ADD_DEFINITIONS("-Wuninitialized -Wsign-compare -Wunused-function -Wunused-variable -Wreturn-type -fno-strict-aliasing")
ENDIF()
@ -170,7 +168,7 @@ IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW OR VS_BUILD)
# CLang specific Compiler Options
IF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "(Apple)?Clang")
ELSEIF(VS_BUILD)
ELSEIF(MSVC)
# GCC specific Compiler Options
ELSE()
@ -238,7 +236,7 @@ size_t stack_depth = backtrace(stack_addrs, max_depth);
message(STATUS "**WARNING DID NOT Find GCC backtrace lib")
ENDIF()
IF(NOT VS_BUILD)
IF(NOT MSVC)
# Debug compiler flags
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g3")
@ -374,7 +372,7 @@ size_t stack_depth = backtrace(stack_addrs, max_depth);
message(STATUS "CMAKE_CXX_FLAGS_${MG_BUILD_TYPE}: ${CMAKE_CXX_FLAGS_${MG_BUILD_TYPE}}")
# Win32 specific Compiler Flags
IF(WIN32 AND NOT VS_BUILD)
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()
@ -418,7 +416,7 @@ ELSE()
ENDIF()
# Set VS project exe outputs.
IF(VS_BUILD)
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})

View File

@ -20,7 +20,7 @@ macro(special_check_for_sse _max_sse_level_desired)
include(CheckCXXSourceRuns)
include(CheckCSourceRuns)
# Add vs_build to stop flags added to msbuild.
# Add MSVC to stop flags being added to msbuild.
IF(NOT MINGW)
set(SSE_FLAGS)

View File

@ -62,7 +62,7 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER)
MESSAGE(STATUS " wxWidgets: ${wxWidgets_INCLUDE_DIRS} ;/; ${wxWidgets_LIBRARIES}")
ENDIF()
IF(NOT VS_BUILD)
IF(NOT MSVC)
find_package(PkgConfig REQUIRED)
ENDIF()
IF(FORCE_STREFLOP_SOFTWRAPPER)
@ -98,7 +98,7 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER)
ENDIF()
IF(WIN32)
IF(NOT VS_BUILD)
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)

View File

@ -140,7 +140,7 @@ IF(BUILD_MEGAGLEST)
ENDIF()
IF(NOT VS_BUILD)
IF(NOT MSVC)
find_package(PkgConfig REQUIRED)
ENDIF()
IF(FORCE_STREFLOP_SOFTWRAPPER)
@ -264,7 +264,7 @@ IF(BUILD_MEGAGLEST)
add_custom_target(run ALL DEPENDS mg.tmp)
ENDIF()
IF(WIN32 AND NOT VS_BUILD)
IF(WIN32 AND NOT MSVC)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,-subsystem,console -mconsole")
ENDIF()

View File

@ -49,7 +49,7 @@ IF(BUILD_MEGAGLEST_MAP_EDITOR)
ENDIF()
IF(WIN32)
IF(NOT VS_BUILD)
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)
@ -82,7 +82,7 @@ IF(BUILD_MEGAGLEST_MAP_EDITOR)
ENDIF()
ENDIF()
IF(NOT VS_BUILD)
IF(NOT MSVC)
find_package(PkgConfig REQUIRED)
ENDIF()
IF(FORCE_STREFLOP_SOFTWRAPPER)
@ -187,7 +187,7 @@ IF(BUILD_MEGAGLEST_MAP_EDITOR)
SET_SOURCE_FILES_PROPERTIES(${MG_INCLUDE_FILES} PROPERTIES HEADER_FILE_ONLY 1)
IF(VS_BUILD)
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()

View File

@ -4,7 +4,7 @@
OPTION(FORCE_EMBEDDED_LIBS "Force use of embedded libraries' code." OFF)
# IMPORTANT: should come BEFORE finding packages
IF(NOT VS_BUILD)
IF(NOT MSVC)
find_package(PkgConfig REQUIRED)
ENDIF()
@ -296,7 +296,7 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST
FIND_PACKAGE(Miniupnpc)
ENDIF()
if(NOT MINIUPNP_FOUND OR VS_BUILD)
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()
@ -312,7 +312,7 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST
else()
add_definitions (-D_POSIX_C_SOURCE=200809L)
endif ()
ELSEIF(VS_BUILD)
ELSEIF(MSVC)
ADD_COMPILE_DEFINITIONS(MINIUPNP_STATICLIB)
endif()

View File

@ -13,7 +13,7 @@ INCLUDE_DIRECTORIES(
SET(STREFLOP_SRC ${STREFLOP_GLOBBED_CPP})
IF(VS_BUILD)
IF(MSVC)
ENABLE_LANGUAGE(ASM_MASM)
SET(STREFLOP_SRC ${STREFLOP_SRC} FPUSettings.asm)
ENDIF()
@ -22,6 +22,6 @@ ADD_LIBRARY(streflop STATIC EXCLUDE_FROM_ALL
${STREFLOP_SRC}
)
IF(NOT VS_BUILD)
IF(NOT MSVC)
set_target_properties(streflop PROPERTIES COMPILE_FLAGS "${PIC_FLAG}")
ENDIF()