@@ -17,62 +17,71 @@ 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} " )
2031elseif (MSVC )
2132 if (CMAKE_SIZEOF_VOID_P EQUAL 8)
22- set (ARCH "-wd4267" )
23- set (ROOT_ARCHITECTURE win64)
24- set (WIN_EXTRA_DEFS "-D_WINDOWS -DWIN32 -D_AMD64_" )
25- set (MACHINE_ARCH X64)
33+ set (WIN_EXTRA_DEFS "-D_WINDOWS -DWIN32 -D_AMD64_" )
34+ set (MACHINE_ARCH X64)
2635 elseif (CMAKE_SIZEOF_VOID_P EQUAL 4)
27- set (ROOT_ARCHITECTURE win32 )
28- set (WIN_EXTRA_DEFS "-D_WINDOWS -DWIN32 -D_X86_" )
29- set (MACHINE_ARCH X86)
36+ set (WIN_EXTRA_DEFS "-D_WINDOWS -DWIN32 -D_X86_" )
37+ set (MACHINE_ARCH X86)
3038 endif ()
3139
40+ set (ROOT_ARCHITECTURE win32 )
41+
3242 math (EXPR VC_MAJOR "${MSVC_VERSION} / 100" )
3343 math (EXPR VC_MINOR "${MSVC_VERSION} % 100" )
3444
3545 if (winrtdebug)
36- set (BLDCXXFLAGS "-Zc:__cplusplus -std:c++${CMAKE_CXX_STANDARD} -MDd -GR" )
37- set (BLDCFLAGS "-MDd" )
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" )
3854 else ()
39- set (BLDCXXFLAGS "-Zc:__cplusplus -std:c++${CMAKE_CXX_STANDARD} -MD -GR" )
40- set (BLDCFLAGS "-MD" )
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} " )
4159 endif ()
4260
4361 if (CMAKE_PROJECT_NAME STREQUAL ROOT)
44- 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" )
45- set (CMAKE_C_FLAGS "-nologo -I${CMAKE_SOURCE_DIR} /build/win -FIw32pragma.h -FIsehmap.h ${BLDCFLAGS} -EHsc- -W3 ${ARCH} -DNOMINMAX" )
46- if (CMAKE_CXX_STANDARD GREATER_EQUAL 17)
47- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING -D_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING" )
48- endif ()
49- if (win_broken_tests)
50- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DR__ENABLE_BROKEN_WIN_TESTS" )
51- endif ()
52- if (llvm13_broken_tests)
53- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DR__ENABLE_LLVM13_BROKEN_TESTS" )
54- endif ()
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)
5566 else ()
56- set (CMAKE_CXX_FLAGS "-nologo -FIw32pragma.h -FIsehmap.h ${BLDCXXFLAGS} -EHsc- -W3 -wd4244 ${ARCH} " )
57- set (CMAKE_C_FLAGS "-nologo -FIw32pragma.h -FIsehmap.h ${BLDCFLAGS} -EHsc- -W3 ${ARCH} " )
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" )
5869 endif ()
5970
6071 #---Select compiler flags----------------------------------------------------------------
61- set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -Ob2 -Z7" )
62- set (CMAKE_CXX_FLAGS_RELEASE "-O2 -Ob2 -DNDEBUG" )
63- set (CMAKE_CXX_FLAGS_DEBUG "-Od -Ob0 -Z7" )
64- set (CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -Ob2 -Z7" )
65- set (CMAKE_C_FLAGS_RELEASE "-O2 -Ob2 -DNDEBUG" )
66- set (CMAKE_C_FLAGS_DEBUG "-Od -Ob0 -Z7" )
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" )
6780
6881 #---Set Linker flags----------------------------------------------------------------------
6982 set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -ignore:4049,4206,4217,4221 -incremental:no" )
7083 set (CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -ignore:4049,4206,4217,4221 -incremental:no" )
7184
72- string (TIMESTAMP CURRENT_YEAR "%Y" )
73- set (ROOT_RC_SCRIPT ${CMAKE_BINARY_DIR} /etc/root.rc)
74- set (ROOT_MANIFEST ${CMAKE_BINARY_DIR} /etc/root-manifest.xml)
75-
7685 foreach ( OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES} )
7786 string ( TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG )
7887 set ( CMAKE_RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} )
0 commit comments