aboutsummaryrefslogtreecommitdiff
path: root/src/platform
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2023-10-07 09:34:00 +0800
committercrupest <crupest@outlook.com>2023-10-07 09:34:00 +0800
commit5571f4a03d10d590c0d0d0e64b9e210d0752a44e (patch)
tree14dc8c831909f72c93457a397be171317cff5510 /src/platform
parent9db39eceafe475720d2539f867e31fe61da623c3 (diff)
downloadcru-5571f4a03d10d590c0d0d0e64b9e210d0752a44e.tar.gz
cru-5571f4a03d10d590c0d0d0e64b9e210d0752a44e.tar.bz2
cru-5571f4a03d10d590c0d0d0e64b9e210d0752a44e.zip
Start migrating cairo for emsripten.
Diffstat (limited to 'src/platform')
-rw-r--r--src/platform/CMakeLists.txt1
-rw-r--r--src/platform/graphics/cairo/CMakeLists.txt31
2 files changed, 20 insertions, 12 deletions
diff --git a/src/platform/CMakeLists.txt b/src/platform/CMakeLists.txt
index 0a94a26e..c1b08c2f 100644
--- a/src/platform/CMakeLists.txt
+++ b/src/platform/CMakeLists.txt
@@ -20,6 +20,7 @@ elseif (APPLE)
add_subdirectory(gui/osx)
elseif (EMSCRIPTEN)
add_subdirectory(web)
+ add_subdirectory(graphics/cairo)
add_subdirectory(graphics/web_canvas)
endif()
diff --git a/src/platform/graphics/cairo/CMakeLists.txt b/src/platform/graphics/cairo/CMakeLists.txt
index 5879e01c..73b18499 100644
--- a/src/platform/graphics/cairo/CMakeLists.txt
+++ b/src/platform/graphics/cairo/CMakeLists.txt
@@ -1,3 +1,16 @@
+add_library(CruPlatformGraphicsCairo
+ Base.cpp
+ CairoBrush.cpp
+ CairoGeometry.cpp
+ CairoGraphicsFactory.cpp
+ CairoImage.cpp
+ CairoImageFactory.cpp
+ CairoPainter.cpp
+ CairoResource.cpp
+ PangoFont.cpp
+ PangoTextLayout.cpp
+)
+
if (UNIX AND NOT EMSCRIPTEN) # It's so great to see emscripten is somewhat UNIX!
foreach(PP IN LISTS CMAKE_SYSTEM_PREFIX_PATH)
cmake_path(APPEND PP "lib" ${CMAKE_LIBRARY_ARCHITECTURE})
@@ -16,19 +29,13 @@ if (UNIX AND NOT EMSCRIPTEN) # It's so great to see emscripten is somewhat UNIX!
find_library(LIB_PNG png REQUIRED)
- add_library(CruPlatformGraphicsCairo
- Base.cpp
- CairoBrush.cpp
- CairoGeometry.cpp
- CairoGraphicsFactory.cpp
- CairoImage.cpp
- CairoImageFactory.cpp
- CairoPainter.cpp
- CairoResource.cpp
- PangoFont.cpp
- PangoTextLayout.cpp
- )
target_compile_definitions(CruPlatformGraphicsCairo PRIVATE CRU_PLATFORM_GRAPHICS_CAIRO_EXPORT_API)
target_link_libraries(CruPlatformGraphicsCairo PUBLIC CruPlatformGraphics PUBLIC ${LIB_GOBJECT} ${LIB_CAIRO} ${LIB_PANGO} ${LIB_PANGOCAIRO} ${LIB_PNG})
target_include_directories(CruPlatformGraphicsCairo PUBLIC ${CAIRO_HEADER_DIR} ${GLIB_HEADER_DIR} ${GLIBCONFIG_HEADER_DIR} ${HARFBUZZ_HEADER_DIR} ${PANGO_HEADER_DIR})
endif()
+
+if (EMSCRIPTEN)
+ add_dependencies(CruPlatformGraphicsCairo cairo-build)
+ target_link_libraries(CruPlatformGraphicsCairo PUBLIC CruPlatformGraphics PUBLIC ${CAIRO_INSTALL_DIR}/lib/libcairo.a)
+ target_include_directories(CruPlatformGraphicsCairo PUBLIC ${CAIRO_INSTALL_DIR}/include)
+endif()