Skip to content

Commit 408ca91

Browse files
committed
move /Zc:__cplusplus to SetUpWindows.cmake
1 parent 5b48b4a commit 408ca91

File tree

2 files changed

+31
-49
lines changed

2 files changed

+31
-49
lines changed

cling/src/CMakeLists.txt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,6 @@ include(cmake/modules/CaptureCommandLine.cmake)
2323

2424
project(ROOT)
2525

26-
#---Set globally consistent use of __cplusplus ------------------------------------------------
27-
if ((MSVC) AND (MSVC_VERSION GREATER_EQUAL 1914))
28-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Zc:__cplusplus")
29-
endif()
30-
3126
#---Set the locale to default C to prevent issued due to localization of commands--------------
3227
# This is necessary as we for example call `clang -v` and parse its output. But on a localized
3328
# program, the output parsing is much more error prone as certrain strings we're looking for

cling/src/cmake/modules/SetUpWindows.cmake

Lines changed: 31 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -17,71 +17,58 @@ if(CMAKE_COMPILER_IS_GNUCXX)
1717

1818
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined")
1919

20-
# Select flags.
21-
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG")
22-
set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG")
23-
set(CMAKE_CXX_FLAGS_DEBUG "-g")
24-
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG")
25-
set(CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG")
26-
set(CMAKE_C_FLAGS_DEBUG "-g")
27-
28-
#---Set Linker flags----------------------------------------------------------------------
29-
set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS}")
30-
set(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS}")
3120
elseif(MSVC)
3221
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
33-
set(WIN_EXTRA_DEFS "-D_WINDOWS -DWIN32 -D_AMD64_")
34-
set(MACHINE_ARCH X64)
35-
elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
36-
set(WIN_EXTRA_DEFS "-D_WINDOWS -DWIN32 -D_X86_")
37-
set(MACHINE_ARCH X86)
22+
set(ARCH "-wd4267")
23+
set(ROOT_ARCHITECTURE win64)
24+
else()
25+
set(ROOT_ARCHITECTURE win32)
3826
endif()
3927

40-
set(ROOT_ARCHITECTURE win32)
41-
4228
math(EXPR VC_MAJOR "${MSVC_VERSION} / 100")
4329
math(EXPR VC_MINOR "${MSVC_VERSION} % 100")
4430

4531
if(winrtdebug)
46-
if (CMAKE_SIZEOF_VOID_P EQUAL 8)
47-
string(REGEX MATCH "-D_ITERATOR_DEBUG_LEVEL=0" result ${CMAKE_CXX_FLAGS_DEBUG})
48-
if(NOT result MATCHES "-D_ITERATOR_DEBUG_LEVEL=0")
49-
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_ITERATOR_DEBUG_LEVEL=0")
50-
endif()
51-
endif()
52-
set(BLDCXXFLAGS "-MDd")
53-
set(BLDCFLAGS "-MDd")
32+
set(BLDCXXFLAGS "-Zc:__cplusplus -std:c++${CMAKE_CXX_STANDARD} -MDd -GR")
33+
set(BLDCFLAGS "-MDd")
5434
else()
55-
set(BLDCXXFLAGS "-MD")
56-
set(BLDCFLAGS "-MD")
57-
string(REPLACE "-MDd" "-MD" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
58-
string(REPLACE "-MDd" "-MD" CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}")
35+
set(BLDCXXFLAGS "-Zc:__cplusplus -std:c++${CMAKE_CXX_STANDARD} -MD -GR")
36+
set(BLDCFLAGS "-MD")
5937
endif()
6038

6139
if(CMAKE_PROJECT_NAME STREQUAL ROOT)
62-
set(CMAKE_CXX_FLAGS "-nologo -I${CMAKE_SOURCE_DIR}/build/win -FIw32pragma.h -FIsehmap.h ${BLDCXXFLAGS} ${WIN_EXTRA_DEFS} -EHsc- -W3 -wd4141 -wd4291 -wd4244 -wd4049 -wd4146 -D_WIN32 ${ARCH} -D_XKEYCHECK_H -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -DNOMINMAX -D_CRT_SECURE_NO_WARNINGS")
63-
set(CMAKE_C_FLAGS "-nologo -I${CMAKE_SOURCE_DIR}/build/win -FIw32pragma.h -FIsehmap.h ${BLDCFLAGS} ${WIN_EXTRA_DEFS} -EHsc- -W3 -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -DNOMINMAX")
64-
install(FILES ${CMAKE_SOURCE_DIR}/build/win/w32pragma.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT headers)
65-
install(FILES ${CMAKE_SOURCE_DIR}/build/win/sehmap.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT headers)
40+
set(CMAKE_CXX_FLAGS "-nologo -I${CMAKE_SOURCE_DIR}/build/win -FIw32pragma.h -FIsehmap.h ${BLDCXXFLAGS} -EHsc- -W3 -wd4141 -wd4291 -wd4244 -wd4049 -wd4146 -wd4250 -wd4624 ${ARCH} -D_XKEYCHECK_H -DNOMINMAX -D_CRT_SECURE_NO_WARNINGS")
41+
set(CMAKE_C_FLAGS "-nologo -I${CMAKE_SOURCE_DIR}/build/win -FIw32pragma.h -FIsehmap.h ${BLDCFLAGS} -EHsc- -W3 ${ARCH} -DNOMINMAX")
42+
if(CMAKE_CXX_STANDARD GREATER_EQUAL 17)
43+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING -D_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING")
44+
endif()
45+
if(win_broken_tests)
46+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DR__ENABLE_BROKEN_WIN_TESTS")
47+
endif()
48+
if(llvm13_broken_tests)
49+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DR__ENABLE_LLVM13_BROKEN_TESTS")
50+
endif()
6651
else()
67-
set(CMAKE_CXX_FLAGS "-nologo -FIw32pragma.h -FIsehmap.h ${BLDCXXFLAGS} ${WIN_EXTRA_DEFS} -EHsc- -W3 -wd4244")
68-
set(CMAKE_C_FLAGS "-nologo -FIw32pragma.h -FIsehmap.h ${BLDCFLAGS} ${WIN_EXTRA_DEFS} -EHsc- -W3")
52+
set(CMAKE_CXX_FLAGS "-nologo -FIw32pragma.h -FIsehmap.h ${BLDCXXFLAGS} -EHsc- -W3 -wd4244 ${ARCH}")
53+
set(CMAKE_C_FLAGS "-nologo -FIw32pragma.h -FIsehmap.h ${BLDCFLAGS} -EHsc- -W3 ${ARCH}")
6954
endif()
7055

7156
#---Select compiler flags----------------------------------------------------------------
72-
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-MD -O2 -Ob1 -Z7 -DNDEBUG")
73-
set(CMAKE_CXX_FLAGS_MINSIZEREL "-MD -O1 -Ob1 -DNDEBUG")
74-
set(CMAKE_CXX_FLAGS_RELEASE "-MD -O2 -Ob2 -DNDEBUG")
75-
set(CMAKE_CXX_FLAGS_DEBUG "-MDd -Od -Ob0 -Z7")
76-
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-MD -O2 -Ob1 -Z7 -DNDEBUG")
77-
set(CMAKE_C_FLAGS_MINSIZEREL "-MD -O1 -Ob1 -DNDEBUG")
78-
set(CMAKE_C_FLAGS_RELEASE "-MD -O2 -Ob2 -DNDEBUG")
79-
set(CMAKE_C_FLAGS_DEBUG "-MDd -Od -Ob0 -Z7")
57+
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -Ob2 -Z7")
58+
set(CMAKE_CXX_FLAGS_RELEASE "-O2 -Ob2 -DNDEBUG")
59+
set(CMAKE_CXX_FLAGS_DEBUG "-Od -Ob0 -Z7")
60+
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -Ob2 -Z7")
61+
set(CMAKE_C_FLAGS_RELEASE "-O2 -Ob2 -DNDEBUG")
62+
set(CMAKE_C_FLAGS_DEBUG "-Od -Ob0 -Z7")
8063

8164
#---Set Linker flags----------------------------------------------------------------------
8265
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -ignore:4049,4206,4217,4221 -incremental:no")
8366
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -ignore:4049,4206,4217,4221 -incremental:no")
8467

68+
string(TIMESTAMP CURRENT_YEAR "%Y")
69+
set(ROOT_RC_SCRIPT ${CMAKE_BINARY_DIR}/etc/root.rc)
70+
set(ROOT_MANIFEST ${CMAKE_BINARY_DIR}/etc/root-manifest.xml)
71+
8572
foreach( OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES} )
8673
string( TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG )
8774
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} )

0 commit comments

Comments
 (0)