Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(94)

Side by Side Diff: cmake/CMakeLists.txt

Issue 2009503002: CMake: control static/shared the normal CMake way. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: both, lpthread Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | cmake/cmake_build » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Boilerplate. 1 # Boilerplate.
2 cmake_minimum_required (VERSION 3.1) # First version with CMAKE_CXX_STANDARD. 2 cmake_minimum_required (VERSION 3.1) # First version with CMAKE_CXX_STANDARD.
3 project (skimake) 3 project (skimake)
4 set (CMAKE_CXX_STANDARD 11) 4 set (CMAKE_CXX_STANDARD 11)
5 5
6 # Default to Release mode. We're mainly targeting Skia users, not Skia develope rs. 6 # Default to Release mode. We're mainly targeting Skia users, not Skia develope rs.
7 if (NOT CMAKE_BUILD_TYPE) 7 if (NOT CMAKE_BUILD_TYPE)
8 set (CMAKE_BUILD_TYPE Release) 8 set (CMAKE_BUILD_TYPE Release)
9 endif () 9 endif ()
10 10
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
237 list (APPEND libs ${OSMESA_LIBRARIES}) 237 list (APPEND libs ${OSMESA_LIBRARIES})
238 list (APPEND private_includes ${OSMESA_INCLUDE_DIRS}) 238 list (APPEND private_includes ${OSMESA_INCLUDE_DIRS})
239 list (APPEND public_defines "-DSK_MESA=1") 239 list (APPEND public_defines "-DSK_MESA=1")
240 set (SK_MESA 1) 240 set (SK_MESA 1)
241 else() 241 else()
242 remove_srcs(../src/gpu/gl/mesa/*) 242 remove_srcs(../src/gpu/gl/mesa/*)
243 endif() 243 endif()
244 244
245 if (WIN32) 245 if (WIN32)
246 list (APPEND libs FontSub.lib Usp10.lib) 246 list (APPEND libs FontSub.lib Usp10.lib)
247 else()
248 list (APPEND libs pthread)
247 endif() 249 endif()
248 250
249 find_package(OpenGL REQUIRED) 251 find_package(OpenGL REQUIRED)
250 list (APPEND libs ${OPENGL_LIBRARIES}) 252 list (APPEND libs ${OPENGL_LIBRARIES})
251 253
252 # This is our main output, libskia.so. 254 # This is our main output, libskia.{a,so,dll,dylib,etc...}
253 # We mostly build an .so here because it helps test we've linked everything, 255 # You can control whether this is static or shared with BUILD_SHARED_LIBS.
254 # not so much that we think Skia is a good candidate to ship as a shared library . 256 add_library (skia ${srcs})
255 add_library (skia SHARED ${srcs})
256 257
257 target_compile_definitions(skia 258 target_compile_definitions(skia
258 PUBLIC ${public_defines} 259 PUBLIC ${public_defines}
259 PRIVATE -DSKIA_DLL -DSKIA_IMPLEMENTATION=1) 260 PRIVATE -DSKIA_DLL -DSKIA_IMPLEMENTATION=1)
260 261
261 target_include_directories(skia 262 target_include_directories(skia
262 PUBLIC ${public_includes} 263 PUBLIC ${public_includes}
263 PRIVATE ${private_includes}) 264 PRIVATE ${private_includes})
264 265
265 target_link_libraries(skia 266 target_link_libraries(skia
266 PUBLIC 267 PUBLIC
267 PRIVATE ${libs}) 268 PRIVATE ${libs})
268 269
269 if (MSVC) 270 if (MSVC)
270 string(REGEX REPLACE " /W3 " " " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") 271 string(REGEX REPLACE " /W3 " " " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
271 set(cc_flags "/w /GR-") 272 set(cc_flags "/w /GR-")
272 else() 273 else()
273 set(cc_flags "-w -fno-rtti -fno-exceptions") 274 set(cc_flags "-w -fno-rtti -fno-exceptions")
274 endif() 275 endif()
275 276
276 set_target_properties(skia PROPERTIES 277 set_target_properties(skia PROPERTIES
277 COMPILE_FLAGS ${cc_flags} 278 COMPILE_FLAGS ${cc_flags})
278 CXX_VISIBILITY_PRESET hidden 279 if (BUILD_SHARED_LIBS)
279 VISIBILITY_INLINES_HIDDEN true) 280 set_target_properties(skia PROPERTIES
281 CXX_VISIBILITY_PRESET hidden
282 VISIBILITY_INLINES_HIDDEN true)
283 endif()
280 284
281 # Experimental C API install: 285 # Experimental C API install:
282 file(GLOB c_headers "../include/c/*.h") 286 file(GLOB c_headers "../include/c/*.h")
283 install(FILES ${c_headers} DESTINATION include) 287 install(FILES ${c_headers} DESTINATION include)
284 install(TARGETS skia DESTINATION lib) 288 install(TARGETS skia DESTINATION lib)
285 289
286 # SkUserConfig.h 290 # SkUserConfig.h
287 if (CMAKE_BUILD_TYPE STREQUAL Release) 291 if (CMAKE_BUILD_TYPE STREQUAL Release)
288 set (SK_RELEASE 1) 292 set (SK_RELEASE 1)
289 else() 293 else()
290 set (SK_RELEASE 0) 294 set (SK_RELEASE 0)
291 endif() 295 endif()
292 if (UNIX AND NOT APPLE) 296 if (UNIX AND NOT APPLE)
293 set (SK_SAMPLES_FOR_X 1) 297 set (SK_SAMPLES_FOR_X 1)
294 else() 298 else()
295 set (SK_SAMPLES_FOR_X 0) 299 set (SK_SAMPLES_FOR_X 0)
296 endif() 300 endif()
297 configure_file ("SkUserConfig.h.in" "${userconfig_directory}/SkUserConfig.h") 301 configure_file ("SkUserConfig.h.in" "${userconfig_directory}/SkUserConfig.h")
298 302
299 # skia_link_arguments.txt 303 # skia_link_arguments.txt
hal.canary 2016/05/24 14:44:51 Should this change depending on static/shared?
hal.canary 2016/05/24 15:26:48 Something like this? if (BUILD_SHARED_LIBS) fil
hal.canary 2016/05/24 15:44:45 This seems to work, even if it is hacky: # skia_l
300 set (link_arguments ${CMAKE_BINARY_DIR}/skia_link_arguments.txt) 304 set (link_arguments ${CMAKE_BINARY_DIR}/skia_link_arguments.txt)
301 file (WRITE ${link_arguments} "-L${CMAKE_BINARY_DIR}\n") 305 file (WRITE ${link_arguments} "-L${CMAKE_BINARY_DIR}\n")
302 file (APPEND ${link_arguments} "-lskia\n") 306 file (APPEND ${link_arguments} "-lskia\n")
303 file (APPEND ${link_arguments} "-Wl,-rpath,${CMAKE_BINARY_DIR}\n") 307 file (APPEND ${link_arguments} "-Wl,-rpath,${CMAKE_BINARY_DIR}\n")
304 308
305 # skia_compile_arguments.txt 309 # skia_compile_arguments.txt
306 set (compile_arguments ${CMAKE_BINARY_DIR}/skia_compile_arguments.txt) 310 set (compile_arguments ${CMAKE_BINARY_DIR}/skia_compile_arguments.txt)
307 file (WRITE ${compile_arguments} "--std=c++11\n") 311 file (WRITE ${compile_arguments} "--std=c++11\n")
308 foreach (include ${public_includes}) 312 foreach (include ${public_includes})
309 get_filename_component (abs_include ${include} ABSOLUTE) 313 get_filename_component (abs_include ${include} ABSOLUTE)
(...skipping 22 matching lines...) Expand all
332 file (APPEND ${skia_h_path} "#include \"${filename_component}\"\n") 336 file (APPEND ${skia_h_path} "#include \"${filename_component}\"\n")
333 endif () 337 endif ()
334 endforeach() 338 endforeach()
335 endif() 339 endif()
336 endforeach() 340 endforeach()
337 file(APPEND ${skia_h_path} "\n#endif // skia_DEFINED\n") 341 file(APPEND ${skia_h_path} "\n#endif // skia_DEFINED\n")
338 342
339 # Now build a simple example app that uses Skia via libskia.so. 343 # Now build a simple example app that uses Skia via libskia.so.
340 add_executable(example example.cpp) 344 add_executable(example example.cpp)
341 target_link_libraries(example skia ${OPENGL_LIBRARIES}) 345 target_link_libraries(example skia ${OPENGL_LIBRARIES})
OLDNEW
« no previous file with comments | « no previous file | cmake/cmake_build » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698