Index: cmake/CMakeLists.txt |
diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt |
index 36a6d1ecf3ca947363c8197efebd4a2e5e82a64c..96c6d706cfc2dc365f71ba0405e678b610df1742 100644 |
--- a/cmake/CMakeLists.txt |
+++ b/cmake/CMakeLists.txt |
@@ -27,6 +27,9 @@ find_include_dirs(private_includes ../src/*.h ../include/private/*.h) |
find_include_dirs(public_includes ../include/*.h) |
list (REMOVE_ITEM public_includes ${private_includes}) # Easiest way to exclude private. |
+find_include_dirs(config_include ../include/config/*.h) |
+list (REMOVE_ITEM public_includes ${config_include}) |
+ |
# These guys are third_party but provided by a Skia checkout. |
list (APPEND srcs ../third_party/etc1/etc1.cpp ../third_party/ktx/ktx.cpp) |
list (APPEND private_includes ../third_party/etc1 ../third_party/ktx) |
@@ -100,7 +103,6 @@ remove_srcs( |
../src/gpu/gl/command_buffer/* |
../src/gpu/gl/egl/* |
../src/gpu/gl/iOS/* |
- ../src/gpu/gl/mesa/* |
../src/opts/SkBitmapProcState_opts_none.cpp |
../src/opts/SkBlitMask_opts_none.cpp |
../src/opts/SkBlitRow_opts_none.cpp |
@@ -191,6 +193,7 @@ if (FONTCONFIG_INCLUDE_DIRS AND FONTCONFIG_LIBRARIES) |
list (APPEND libs ${FONTCONFIG_LIBRARIES}) |
endif() |
+ |
if (APPLE) |
find_library(APPLICATION_SERVICES_FRAMEWORK ApplicationServices REQUIRED) |
list (APPEND libs ${APPLICATION_SERVICES_FRAMEWORK}) |
@@ -199,33 +202,58 @@ endif() |
find_package(OpenGL REQUIRED) |
list (APPEND libs ${OPENGL_LIBRARIES}) |
+set(SK_MESA OFF CACHE BOOL "Support for off-screen Mesa OpenGL") |
+if(${CMAKE_BUILD_TYPE} STREQUAL "Debug") |
mtklein
2015/09/17 13:58:22
This seems unnecessary. SK_DEBUG / SK_RELEASE are
|
+ set(SK_DEBUG 1) |
+ set(SK_RELEASE 0) |
+else() |
+ set(SK_DEBUG 0) |
+ set(SK_RELEASE 1) |
+endif() |
+configure_file(SkUserConfig.h.in SkUserConfig.h) |
mtklein
2015/09/17 13:58:22
Let's not do this. I haven't seen any need yet fo
|
+ |
# This is our main output, libskia.so. |
# We mostly build an .so here because it helps test we've linked everything, |
# not so much that we think Skia is a good candidate to ship as a shared library. |
add_library (skia SHARED ${srcs}) |
+if (UNIX AND NOT APPLE AND SK_MESA) |
mtklein
2015/09/17 13:58:22
Why is this opt-in? Can we not just detect it lik
|
+ # TODO(halcanary): support SK_MESA+APPLE |
+ list (APPEND libs "OSMesa") |
+ # SK_MESA is used by fiddle.skia.org |
+else() |
+ remove_srcs(../src/gpu/gl/mesa/*) |
+endif() |
+ |
target_compile_definitions(skia |
PUBLIC |
PRIVATE -DSKIA_DLL) |
target_include_directories(skia |
PUBLIC ${public_includes} |
+ ${CMAKE_BINARY_DIR} |
PRIVATE ${private_includes}) |
target_link_libraries(skia |
PUBLIC |
PRIVATE ${libs}) |
- |
set_target_properties(skia PROPERTIES |
COMPILE_FLAGS "-fno-exceptions -fno-rtti -Wno-deprecated-declarations" |
CXX_VISIBILITY_PRESET hidden |
VISIBILITY_INLINES_HIDDEN true) |
-# Experimental C API install: |
-file(GLOB cheaders "../include/c/*.h") |
-install(FILES ${cheaders} DESTINATION include) |
+# Experimental install: |
install(TARGETS skia DESTINATION lib) |
+install(DIRECTORY ../include/c DESTINATION include/skia) |
+install(DIRECTORY ../include/core DESTINATION include/skia) |
mtklein
2015/09/17 13:58:22
Yeah, again, I think it's a bad idea to even insin
|
+install(DIRECTORY ../include/effects DESTINATION include/skia) |
+install(DIRECTORY ../include/gpu DESTINATION include/skia) |
+install(DIRECTORY ../include/pathops DESTINATION include/skia) |
+install(DIRECTORY ../include/ports DESTINATION include/skia) |
+install(DIRECTORY ../include/private DESTINATION include/skia) |
+install(DIRECTORY ../include/utils DESTINATION include/skia) |
+install(FILES ${CMAKE_BINARY_DIR}/SkUserConfig.h DESTINATION include/skia/core) |
# Now build a simple example app that uses Skia via libskia.so. |
add_executable(example example.cpp) |