Update tests for windows
diff --git a/dev/test/premake5.lua b/dev/test/premake5.lua
index 5fcf6b5..c0d716b 100644
--- a/dev/test/premake5.lua
+++ b/dev/test/premake5.lua
@@ -13,6 +13,62 @@
     end
 }
 
+
+WINDOWS_CLANG_CL_SUPPRESSED_WARNINGS = {
+    "-Wno-c++98-compat",
+    "-Wno-c++98-compat-pedantic",
+    "-Wno-reserved-macro-identifier",
+    "-Wno-newline-eof",
+    "-Wno-old-style-cast",
+    "-Wno-unused-parameter",
+    "-Wno-float-equal",
+    "-Wno-implicit-float-conversion",
+    "-Wno-shadow",
+    "-Wno-sign-conversion",
+    "-Wno-inconsistent-missing-destructor-override",
+    "-Wno-nested-anon-types",
+    "-Wno-suggest-destructor-override",
+    "-Wno-non-virtual-dtor",
+    "-Wno-unknown-argument",
+    "-Wno-gnu-anonymous-struct",
+    "-Wno-extra-semi",
+    "-Wno-cast-qual",
+    "-Wno-ignored-qualifiers",
+    "-Wno-double-promotion",
+    "-Wno-tautological-unsigned-zero-compare",
+    "-Wno-unreachable-code-break",
+    "-Wno-global-constructors",
+    "-Wno-switch-enum",
+    "-Wno-shorten-64-to-32",
+    "-Wno-missing-prototypes",
+    "-Wno-implicit-int-conversion",
+    "-Wno-unused-macros",
+    "-Wno-deprecated-copy-with-user-provided-dtor",
+    "-Wno-missing-variable-declarations",
+    "-Wno-ctad-maybe-unsupported",
+    "-Wno-vla-extension",
+    "-Wno-float-conversion",
+    "-Wno-gnu-zero-variadic-macro-arguments",
+    "-Wno-undef",
+    "-Wno-documentation",
+    "-Wno-documentation-pedantic",
+    "-Wno-documentation-unknown-command",
+    "-Wno-suggest-override",
+    "-Wno-unused-exception-parameter",
+    "-Wno-cast-align",
+    "-Wno-deprecated-declarations",
+    "-Wno-shadow-field",
+    "-Wno-nonportable-system-include-path",
+    "-Wno-reserved-identifier",
+    "-Wno-thread-safety-negative",
+    "-Wno-exit-time-destructors",
+    "-Wno-unreachable-code",
+    "-Wno-zero-as-null-pointer-constant",
+    "-Wno-pedantic",
+    "-Wno-sign-compare",
+}
+
+
 workspace "rive_tests"
 configurations {"debug"}
 
@@ -20,6 +76,7 @@
 kind "ConsoleApp"
 language "C++"
 cppdialect "C++17"
+toolset "clang"
 targetdir "build/bin/%{cfg.buildcfg}"
 objdir "build/obj/%{cfg.buildcfg}"
 
@@ -37,137 +94,7 @@
 defines {"DEBUG"}
 symbols "On"
 
---[[
-
--- Recursively iterate through all files in a dir
-function dirtree(dir)
-
-    assert(dir and dir ~= "", "Provide a directory")
-    if string.sub(dir, -1) == "/" then
-        dir = string.sub(dir, 1, -2)
-    end
-
-    local function yieldtree(dir)
-        for entry in lfs.dir(dir) do
-            if entry ~= "." and entry ~= ".." then
-                entry = dir .. "/" .. entry
-                local attr = lfs.attributes(entry)
-                coroutine.yield(entry, attr)
-                if attr.mode == "directory" then
-                    yieldtree(entry)
-                end
-            end
-        end
-    end
-    return coroutine.wrap(function()
-        yieldtree(dir)
-    end)
-end
-
--- Get the file extension from a string
-function getFileExtension(path)
-    return path:match("^.+(%..+)$")
-end
-
--- Get file paths to all files ending in the given file extension in a given dir
--- This will recurse through subdirs
-function getFilesByExtension(extension, dir)
-    local function yieldfile(dir)
-        for filename, attr in dirtree(dir) do
-            if attr.mode == "file" and getFileExtension(filename) == extension then
-                coroutine.yield(filename)
-            end
-        end
-    end
-    return coroutine.wrap(function()
-        yieldfile(dir)
-    end)
-end
-
--- Build test executable for a cpp file
-local function test(filepath)
-
-    local filename = filepath:match("([^/]+)$")
-    local projectname = filename:match("^[^%.]+")
-    -- print("Filepath: " .. filepath)
-    -- print("Filename: " .. filename)
-    -- print("Projectname: " .. projectname)
-
-    project(projectname)
-    kind "ConsoleApp"
-    language "C++"
-    cppdialect "C++17"
-    targetdir "build/bin/%{cfg.buildcfg}"
-    objdir "build/obj/%{cfg.buildcfg}"
-    
-    buildoptions {
-        "-Wall", 
-        "-fno-exceptions", 
-        "-fno-rtti"
-    }
-
-    includedirs {
-        "./include",
-        "../../rive/include"
-    }
-
-    files {
-        "../../rive/src/**.cpp",
-        filepath
-    }
-
-    filter "configurations:debug"
-        defines { "DEBUG" }
-        symbols "On"
-end
-
--- Build all cpp test files in Rive's test directory
-for cppFile in getFilesByExtension(".cpp", "../../rive/test/") do
-    test(cppFile)
-end
-
--- Build test executable for a cpp file and link to the precompiled rive lib
-local function test_precompiled(filepath)
-
-    local filename = filepath:match("([^/]+)$") .. "_linked"
-    local projectname = filename:match("^[^%.]+") .. "_linked"
-    -- print("Filepath: " .. filepath)
-    -- print("Filename: " .. filename)
-    -- print("Projectname: " .. projectname)
-
-    project(projectname)
-    kind "ConsoleApp"
-    language "C++"
-    cppdialect "C++17"
-    targetdir "build/bin/%{cfg.buildcfg}"
-    objdir "build/obj/%{cfg.buildcfg}"
-    
-    buildoptions {
-        "-Wall", 
-        "-fno-exceptions", 
-        "-fno-rtti"
-    }
-
-    includedirs {
-        "./include",
-        "../../rive/include"
-    }
-
-    files { filepath }
-
-    links
-    {
-        "../../rive/build/bin/debug/librive.a"
-    }
-
-    filter "configurations:debug"
-        defines { "DEBUG" }
-        symbols "On"
-end
-
--- Build all cpp test files in Rive's test directory
-for cppFile in getFilesByExtension(".cpp", "../../rive/test/") do
-    test_precompiled(cppFile)
-end
-
---]]
+filter "system:windows"
+    architecture "x64"
+    defines {"_USE_MATH_DEFINES"}
+    buildoptions {WINDOWS_CLANG_CL_SUPPRESSED_WARNINGS}
\ No newline at end of file