From c34067e7757ac526dd180b6961c8ef27a45e0a99 Mon Sep 17 00:00:00 2001 From: Fei Xu Date: Thu, 18 Jul 2019 10:55:13 +0800 Subject: [PATCH 1/2] Add CINDER_MSVC_MT --- docs/htmlsrc/guides/cmake/cmake.html | 1 + proj/cmake/modules/cinderMakeApp.cmake | 24 +++++++++++++----------- proj/cmake/platform_msw.cmake | 22 ++++++++++++---------- 3 files changed, 26 insertions(+), 21 deletions(-) diff --git a/docs/htmlsrc/guides/cmake/cmake.html b/docs/htmlsrc/guides/cmake/cmake.html index 7b458fbdbb..aa9ef23fa2 100644 --- a/docs/htmlsrc/guides/cmake/cmake.html +++ b/docs/htmlsrc/guides/cmake/cmake.html @@ -147,3 +147,4 @@

Keep the code style consistent

Platform Specific Notes

Microsoft Windows

As of this writing, we do not support building from CMake-generated Makefiles on Windows, simply because the GCC toolchain is too difficult to set up there with a compiler that supports the features we need (C++11). The best approach there is to use the provided Visual Studio project files, as explained here. You can however generate new Visual Studio project files from CMake, if that suits your needs.

+

By default, runtime library is set to Multi-threaded Dll ("/MD"), set CINDER_MSVC_MT to ON to use "/MT"

\ No newline at end of file diff --git a/proj/cmake/modules/cinderMakeApp.cmake b/proj/cmake/modules/cinderMakeApp.cmake index 5409dcb512..7d75a2d5f6 100644 --- a/proj/cmake/modules/cinderMakeApp.cmake +++ b/proj/cmake/modules/cinderMakeApp.cmake @@ -110,17 +110,19 @@ function( ci_make_app ) endif() elseif( CINDER_MSW ) if( MSVC ) - # Override the default /MD with /MT - foreach( - flag_var - CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO - CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO - ) - if( ${flag_var} MATCHES "/MD" ) - string( REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}" ) - set( "${flag_var}" "${${flag_var}}" PARENT_SCOPE ) - endif() - endforeach() + if( CINDER_MSVC_MT ) + # Override the default /MD with /MT + foreach( + flag_var + CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO + CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO + ) + if( ${flag_var} MATCHES "/MD" ) + string( REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}" ) + set( "${flag_var}" "${${flag_var}}" PARENT_SCOPE ) + endif() + endforeach() + endif() # Force synchronous PDB writes add_compile_options( /FS ) # Force multiprocess compilation diff --git a/proj/cmake/platform_msw.cmake b/proj/cmake/platform_msw.cmake index 78dcb1dff1..d31047f7eb 100644 --- a/proj/cmake/platform_msw.cmake +++ b/proj/cmake/platform_msw.cmake @@ -108,16 +108,18 @@ list( APPEND CINDER_INCLUDE_SYSTEM_PRIVATE list( APPEND CINDER_DEFINES "_LIB;UNICODE;_UNICODE;NOMINMAX;_WIN32_WINNT=0x0601;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS" ) if( MSVC ) - # Override the default /MD with /MT - foreach( - flag_var - CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO - CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO - ) - if( ${flag_var} MATCHES "/MD" ) - string( REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}" ) - endif() - endforeach() + if( CINDER_MSVC_MT ) + # Override the default /MD with /MT + foreach( + flag_var + CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO + CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO + ) + if( ${flag_var} MATCHES "/MD" ) + string( REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}" ) + endif() + endforeach() + endif() # Force synchronous PDB writes add_compile_options( /FS ) # Force multiprocess compilation From be28c5922c30de9db71cfb814ff20aa196b26aba Mon Sep 17 00:00:00 2001 From: fei4xu Date: Fri, 19 Jul 2019 09:21:20 +0800 Subject: [PATCH 2/2] remove the forcing of MT --- docs/htmlsrc/guides/cmake/cmake.html | 1 - proj/cmake/modules/cinderMakeApp.cmake | 13 ------------- proj/cmake/platform_msw.cmake | 12 ------------ 3 files changed, 26 deletions(-) diff --git a/docs/htmlsrc/guides/cmake/cmake.html b/docs/htmlsrc/guides/cmake/cmake.html index aa9ef23fa2..7b458fbdbb 100644 --- a/docs/htmlsrc/guides/cmake/cmake.html +++ b/docs/htmlsrc/guides/cmake/cmake.html @@ -147,4 +147,3 @@

Keep the code style consistent

Platform Specific Notes

Microsoft Windows

As of this writing, we do not support building from CMake-generated Makefiles on Windows, simply because the GCC toolchain is too difficult to set up there with a compiler that supports the features we need (C++11). The best approach there is to use the provided Visual Studio project files, as explained here. You can however generate new Visual Studio project files from CMake, if that suits your needs.

-

By default, runtime library is set to Multi-threaded Dll ("/MD"), set CINDER_MSVC_MT to ON to use "/MT"

\ No newline at end of file diff --git a/proj/cmake/modules/cinderMakeApp.cmake b/proj/cmake/modules/cinderMakeApp.cmake index 7d75a2d5f6..0b99bb3a04 100644 --- a/proj/cmake/modules/cinderMakeApp.cmake +++ b/proj/cmake/modules/cinderMakeApp.cmake @@ -110,19 +110,6 @@ function( ci_make_app ) endif() elseif( CINDER_MSW ) if( MSVC ) - if( CINDER_MSVC_MT ) - # Override the default /MD with /MT - foreach( - flag_var - CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO - CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO - ) - if( ${flag_var} MATCHES "/MD" ) - string( REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}" ) - set( "${flag_var}" "${${flag_var}}" PARENT_SCOPE ) - endif() - endforeach() - endif() # Force synchronous PDB writes add_compile_options( /FS ) # Force multiprocess compilation diff --git a/proj/cmake/platform_msw.cmake b/proj/cmake/platform_msw.cmake index d31047f7eb..42aff57e3b 100644 --- a/proj/cmake/platform_msw.cmake +++ b/proj/cmake/platform_msw.cmake @@ -108,18 +108,6 @@ list( APPEND CINDER_INCLUDE_SYSTEM_PRIVATE list( APPEND CINDER_DEFINES "_LIB;UNICODE;_UNICODE;NOMINMAX;_WIN32_WINNT=0x0601;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS" ) if( MSVC ) - if( CINDER_MSVC_MT ) - # Override the default /MD with /MT - foreach( - flag_var - CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO - CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO - ) - if( ${flag_var} MATCHES "/MD" ) - string( REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}" ) - endif() - endforeach() - endif() # Force synchronous PDB writes add_compile_options( /FS ) # Force multiprocess compilation