diff --git a/.gitignore b/.gitignore
index 359e550..3c6be41 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,7 @@
.vscode/
bin/
obj/
+builddir/
*.user
Debug/
Release/
diff --git a/src/WebWindow.Native/CMakeLists.txt b/src/WebWindow.Native/CMakeLists.txt
new file mode 100644
index 0000000..b20aab1
--- /dev/null
+++ b/src/WebWindow.Native/CMakeLists.txt
@@ -0,0 +1,27 @@
+cmake_minimum_required(VERSION 3.7)
+project(WebWindowNative)
+
+if(APPLE)
+ file(GLOB LIB_SOURCE "src/WebWindow.Mac.*")
+else()
+ file(GLOB LIB_SOURCE "src/WebWindow.Linux.*")
+endif()
+
+add_library(WebWindow.Native SHARED ${LIB_SOURCE})
+target_include_directories(WebWindow.Native PUBLIC include)
+
+if(APPLE)
+ target_compile_definitions(WebWindow.Native PUBLIC "-DOS_MAC")
+ target_link_libraries(WebWindow.Native "-framework Cocoa" "-framework WebKit")
+else()
+ find_package(PkgConfig REQUIRED)
+ pkg_check_modules(GTK3 REQUIRED gtk+-3.0)
+ pkg_check_modules(WEBKIT4 REQUIRED webkit2gtk-4.0)
+
+ target_compile_definitions(WebWindow.Native PUBLIC "-DOS_LINUX")
+ target_compile_options(WebWindow.Native PUBLIC ${GTK3_CFLAGS_OTHER} ${WEBKIT4_CFLAGS_OTHER})
+ target_include_directories(WebWindow.Native PUBLIC ${GTK3_INCLUDE_DIRS} ${WEBKIT4_INCLUDE_DIRS})
+ # target_link_directories(WebWindow.Native PUBLIC ${GTK3_LIBRARY_DIRS} ${WEBKIT4_LIBRARY_DIRS})
+ link_directories(${GTK3_LIBRARY_DIRS} ${WEBKIT4_LIBRARY_DIRS})
+ target_link_libraries(WebWindow.Native ${GTK3_LIBRARIES} ${WEBKIT4_LIBRARIES})
+endif()
diff --git a/src/WebWindow.Native/WebWindow.Native.cmproj b/src/WebWindow.Native/WebWindow.Native.cmproj
new file mode 100644
index 0000000..1178f87
--- /dev/null
+++ b/src/WebWindow.Native/WebWindow.Native.cmproj
@@ -0,0 +1,3 @@
+
+
+
diff --git a/src/WebWindow.Native/WebWindow.Native.vcxproj b/src/WebWindow.Native/WebWindow.Native.vcxproj
index 3c5ef82..b3a98fa 100644
--- a/src/WebWindow.Native/WebWindow.Native.vcxproj
+++ b/src/WebWindow.Native/WebWindow.Native.vcxproj
@@ -74,15 +74,19 @@
true
+ include;$(VC_IncludePath);$(WindowsSDK_IncludePath);
true
+ include;$(VC_IncludePath);$(WindowsSDK_IncludePath);
false
+ include;$(VC_IncludePath);$(WindowsSDK_IncludePath);
false
+ include;$(VC_IncludePath);$(WindowsSDK_IncludePath);
@@ -147,12 +151,11 @@
-
-
-
+
+
-
+
diff --git a/src/WebWindow.Native/WebWindow.Native.vcxproj.filters b/src/WebWindow.Native/WebWindow.Native.vcxproj.filters
index eaf12b1..c5835a6 100644
--- a/src/WebWindow.Native/WebWindow.Native.vcxproj.filters
+++ b/src/WebWindow.Native/WebWindow.Native.vcxproj.filters
@@ -15,23 +15,20 @@
-
+
Source Files
-
- Source Files
-
-
+
Source Files
-
+
Header Files
-
+
\ No newline at end of file
diff --git a/src/WebWindow.Native/WebWindow.Mac.AppDelegate.h b/src/WebWindow.Native/include/WebWindow.Mac.AppDelegate.h
similarity index 100%
rename from src/WebWindow.Native/WebWindow.Mac.AppDelegate.h
rename to src/WebWindow.Native/include/WebWindow.Mac.AppDelegate.h
diff --git a/src/WebWindow.Native/WebWindow.Mac.UiDelegate.h b/src/WebWindow.Native/include/WebWindow.Mac.UiDelegate.h
similarity index 100%
rename from src/WebWindow.Native/WebWindow.Mac.UiDelegate.h
rename to src/WebWindow.Native/include/WebWindow.Mac.UiDelegate.h
diff --git a/src/WebWindow.Native/WebWindow.Mac.UrlSchemeHandler.h b/src/WebWindow.Native/include/WebWindow.Mac.UrlSchemeHandler.h
similarity index 100%
rename from src/WebWindow.Native/WebWindow.Mac.UrlSchemeHandler.h
rename to src/WebWindow.Native/include/WebWindow.Mac.UrlSchemeHandler.h
diff --git a/src/WebWindow.Native/WebWindow.h b/src/WebWindow.Native/include/WebWindow.h
similarity index 100%
rename from src/WebWindow.Native/WebWindow.h
rename to src/WebWindow.Native/include/WebWindow.h
diff --git a/src/WebWindow.Native/Exports.cpp b/src/WebWindow.Native/src/Exports.cpp
similarity index 100%
rename from src/WebWindow.Native/Exports.cpp
rename to src/WebWindow.Native/src/Exports.cpp
diff --git a/src/WebWindow.Native/WebWindow.Linux.cpp b/src/WebWindow.Native/src/WebWindow.Linux.cpp
similarity index 99%
rename from src/WebWindow.Native/WebWindow.Linux.cpp
rename to src/WebWindow.Native/src/WebWindow.Linux.cpp
index 8ec24c1..a6d989e 100644
--- a/src/WebWindow.Native/WebWindow.Linux.cpp
+++ b/src/WebWindow.Native/src/WebWindow.Linux.cpp
@@ -1,6 +1,6 @@
// For this to build on WSL (Ubuntu 18.04) you need to:
// sudo apt-get install libgtk-3-dev libwebkit2gtk-4.0-dev
-#ifdef OS_LINUX
+
#include "WebWindow.h"
#include
#include
@@ -308,5 +308,3 @@ void WebWindow::SetIconFile(AutoString filename)
{
gtk_window_set_icon_from_file(GTK_WINDOW(_window), filename, NULL);
}
-
-#endif
diff --git a/src/WebWindow.Native/WebWindow.Mac.AppDelegate.mm b/src/WebWindow.Native/src/WebWindow.Mac.AppDelegate.mm
similarity index 100%
rename from src/WebWindow.Native/WebWindow.Mac.AppDelegate.mm
rename to src/WebWindow.Native/src/WebWindow.Mac.AppDelegate.mm
diff --git a/src/WebWindow.Native/WebWindow.Mac.UiDelegate.mm b/src/WebWindow.Native/src/WebWindow.Mac.UiDelegate.mm
similarity index 100%
rename from src/WebWindow.Native/WebWindow.Mac.UiDelegate.mm
rename to src/WebWindow.Native/src/WebWindow.Mac.UiDelegate.mm
diff --git a/src/WebWindow.Native/WebWindow.Mac.UrlSchemeHandler.m b/src/WebWindow.Native/src/WebWindow.Mac.UrlSchemeHandler.m
similarity index 100%
rename from src/WebWindow.Native/WebWindow.Mac.UrlSchemeHandler.m
rename to src/WebWindow.Native/src/WebWindow.Mac.UrlSchemeHandler.m
diff --git a/src/WebWindow.Native/WebWindow.Mac.mm b/src/WebWindow.Native/src/WebWindow.Mac.mm
similarity index 99%
rename from src/WebWindow.Native/WebWindow.Mac.mm
rename to src/WebWindow.Native/src/WebWindow.Mac.mm
index cdee0bf..cb01994 100644
--- a/src/WebWindow.Native/WebWindow.Mac.mm
+++ b/src/WebWindow.Native/src/WebWindow.Mac.mm
@@ -1,4 +1,3 @@
-#ifdef OS_MAC
#include "WebWindow.h"
#import "WebWindow.Mac.AppDelegate.h"
#import "WebWindow.Mac.UiDelegate.h"
@@ -277,5 +276,3 @@
[[window standardWindowButton:NSWindowDocumentIconButton] setImage:icon];
}
}
-
-#endif
diff --git a/src/WebWindow.Native/WebWindow.Windows.cpp b/src/WebWindow.Native/src/WebWindow.Windows.cpp
similarity index 100%
rename from src/WebWindow.Native/WebWindow.Windows.cpp
rename to src/WebWindow.Native/src/WebWindow.Windows.cpp
diff --git a/src/WebWindow/WebWindow.csproj b/src/WebWindow/WebWindow.csproj
index f2a56da..909151b 100644
--- a/src/WebWindow/WebWindow.csproj
+++ b/src/WebWindow/WebWindow.csproj
@@ -5,7 +5,8 @@
Open native OS windows hosting web UI on Windows, Mac, and Linux
Apache-2.0
netstandard2.1
- ..\WebWindow.Native\x64\$(Configuration)\
+ ..\WebWindow.Native\x64\$(Configuration)\
+ ..\WebWindow.Native\builddir\$(Configuration)\any\
$([MSBuild]::IsOsPlatform('OSX'))
win-x64
linux-x64
@@ -17,20 +18,14 @@
-
-
-
+
<_NativeLibraries Include="$(NativeOutputDir)WebWindow.Native.dll" Condition="Exists('$(NativeOutputDir)WebWindow.Native.dll')" />
<_NativeLibraries Include="$(NativeOutputDir)WebView2Loader.dll" Condition="Exists('$(NativeOutputDir)WebView2Loader.dll')" />
- <_NativeLibraries Include="$(NativeOutputDir)WebWindow.Native.so" Condition="Exists('$(NativeOutputDir)WebWindow.Native.so')" />
- <_NativeLibraries Include="$(NativeOutputDir)WebWindow.Native.dylib" Condition="Exists('$(NativeOutputDir)WebWindow.Native.dylib')" />
+ <_NativeLibraries Include="$(NativeOutputDir)libWebWindow.Native.so" Condition="Exists('$(NativeOutputDir)libWebWindow.Native.so')" />
+ <_NativeLibraries Include="$(NativeOutputDir)libWebWindow.Native.dylib" Condition="Exists('$(NativeOutputDir)libWebWindow.Native.dylib')" />
PreserveNewest
%(Filename)%(Extension)