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)