Title: [218900] trunk
- Revision
- 218900
- Author
- commit-qu...@webkit.org
- Date
- 2017-06-28 16:04:38 -0700 (Wed, 28 Jun 2017)
Log Message
[Win] Build JSCOnly on Windows with clang-cl
https://bugs.webkit.org/show_bug.cgi?id=173889
Patch by Stephan Szabo <stephan.sz...@am.sony.com> on 2017-06-28
Reviewed by Konstantin Tokarev.
* CMakeLists.txt:
* Source/cmake/OptionsCommon.cmake:
* Source/cmake/OptionsMSVC.cmake:
Modified Paths
Diff
Modified: trunk/CMakeLists.txt (218899 => 218900)
--- trunk/CMakeLists.txt 2017-06-28 22:58:16 UTC (rev 218899)
+++ trunk/CMakeLists.txt 2017-06-28 23:04:38 UTC (rev 218900)
@@ -50,6 +50,10 @@
set(COMPILER_IS_GCC_OR_CLANG ON)
endif ()
+if (MSVC AND COMPILER_IS_CLANG)
+ set(COMPILER_IS_CLANG_CL ON)
+endif ()
+
# -----------------------------------------------------------------------------
# Determine the target processor
# -----------------------------------------------------------------------------
Modified: trunk/ChangeLog (218899 => 218900)
--- trunk/ChangeLog 2017-06-28 22:58:16 UTC (rev 218899)
+++ trunk/ChangeLog 2017-06-28 23:04:38 UTC (rev 218900)
@@ -1,3 +1,14 @@
+2017-06-28 Stephan Szabo <stephan.sz...@am.sony.com>
+
+ [Win] Build JSCOnly on Windows with clang-cl
+ https://bugs.webkit.org/show_bug.cgi?id=173889
+
+ Reviewed by Konstantin Tokarev.
+
+ * CMakeLists.txt:
+ * Source/cmake/OptionsCommon.cmake:
+ * Source/cmake/OptionsMSVC.cmake:
+
2017-06-23 Carlos Garcia Campos <cgar...@igalia.com>
[WPE] User script messages don't work
Modified: trunk/Source/cmake/OptionsCommon.cmake (218899 => 218900)
--- trunk/Source/cmake/OptionsCommon.cmake 2017-06-28 22:58:16 UTC (rev 218899)
+++ trunk/Source/cmake/OptionsCommon.cmake 2017-06-28 23:04:38 UTC (rev 218900)
@@ -30,16 +30,6 @@
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
define_property(TARGET PROPERTY FOLDER INHERITED BRIEF_DOCS "folder" FULL_DOCS "IDE folder name")
-if (COMPILER_IS_GCC_OR_CLANG)
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-exceptions -fno-strict-aliasing")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions -fno-strict-aliasing -fno-rtti")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++1y")
- if (NOT (COMPILER_IS_CLANG AND "${CLANG_VERSION}" VERSION_LESS 4.0.0))
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-expansion-to-defined")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-expansion-to-defined")
- endif ()
-endif ()
-
if (CMAKE_GENERATOR STREQUAL "Ninja")
if (COMPILER_IS_CLANG)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fcolor-diagnostics")
@@ -54,9 +44,33 @@
endif ()
endif ()
-if (WIN32 AND COMPILER_IS_GCC_OR_CLANG)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mno-ms-bitfields -Wno-unknown-pragmas")
- add_definitions(-D__USE_MINGW_ANSI_STDIO=1)
+if (COMPILER_IS_GCC_OR_CLANG)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-strict-aliasing")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-aliasing")
+
+ if (COMPILER_IS_CLANG_CL)
+ # clang-cl.exe impersonates cl.exe so some clang arguments like -fno-rtti are
+ # represented using cl.exe's options and should not be passed as flags, so
+ # we do not add -fno-rtti or -fno-exceptions for clang-cl
+
+ # FIXME: These warnings should be addressed
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-undef -Wno-macro-redefined -Wno-unknown-pragmas -Wno-nonportable-include-path -Wno-unknown-argument")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-undef -Wno-macro-redefined -Wno-unknown-pragmas -Wno-nonportable-include-path -Wno-unknown-argument")
+ else ()
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-exceptions")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++1y -fno-exceptions -fno-rtti")
+
+ if (WIN32)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mno-ms-bitfields -Wno-unknown-pragmas")
+ add_definitions(-D{CMAKE_CXX_FLAGS} -mno-ms-bitfields -Wno-unknown-pragmas)
+ add_definitions(-D__USE_MINGW_ANSI_STDIO=1)
+ endif ()
+ endif ()
+
+ if (NOT (COMPILER_IS_CLANG AND "${CLANG_VERSION}" VERSION_LESS 4.0.0))
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-expansion-to-defined")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-expansion-to-defined")
+ endif ()
endif ()
# Ensure that the default include system directories are added to the list of CMake implicit includes.
Modified: trunk/Source/cmake/OptionsMSVC.cmake (218899 => 218900)
--- trunk/Source/cmake/OptionsMSVC.cmake 2017-06-28 22:58:16 UTC (rev 218899)
+++ trunk/Source/cmake/OptionsMSVC.cmake 2017-06-28 23:04:38 UTC (rev 218900)
@@ -21,7 +21,10 @@
add_compile_options(/analyze- /bigobj)
# Use CRT security features
-add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1)
+add_definitions(-D_CRT_SECURE_NO_WARNINGS)
+if (NOT COMPILER_IS_CLANG_CL)
+ add_definitions(-D_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1)
+endif ()
# Turn off certain link features
add_compile_options(/Gy- /openmp- /GF-)
@@ -82,3 +85,14 @@
set(CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "${replace_CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO} /INCREMENTAL:NO")
string(REPLACE "INCREMENTAL:YES" "INCREMENTAL:NO" replace_CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO ${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO})
set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "${replace_CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO} /INCREMENTAL:NO")
+
+if (COMPILER_IS_CLANG_CL)
+ # FIXME: We need to set the msc-version above the one it defaults to
+ # when using clang-cl with VS2015. This might be unnecessary when moving to
+ # VS2017 as part of https://bugs.webkit.org/show_bug.cgi?id=172412
+ add_compile_options(-fmsc-version=190023918)
+
+ # FIXME: Building with clang-cl seemed to fail with 128 bit int support
+ set(HAVE_INT128_T OFF)
+ list(REMOVE_ITEM _WEBKIT_CONFIG_FILE_VARIABLES HAVE_INT128_T)
+endif ()
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes