@@ -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} " )
3120elseif (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