Lines Matching +full:shebang +full:- +full:regex
9 # cmake -DBUILD_FRAMEWORK=ON -Bbuild -H. -GXcode && cmake --build build
20 ## Disallow in-source builds, as CMake generated make files can collide with autotools ones
24 In-source builds are not permitted! Make a separate folder for"
31 rm -rf CMakeCache.txt CMakeFiles")
42 add_definitions(-DHAVE_FREETYPE=1)
59 option(HB_BUILD_SUBSET "Build harfbuzz-subset" ON)
89 add_definitions(-DHAVE_${definition_to_add})
99 add_definitions(-DHAVE_UNISTD_H)
103 add_definitions(-DHAVE_SYS_MMAN_H)
107 add_definitions(-DHAVE_STDBOOL_H)
110 # These will be used while making pkg-config .pc files
118 add_definitions("-DHAVE_PTHREAD")
120 list(APPEND PC_LIBS_PRIV -pthread)
125 add_definitions(-wd4244 -wd4267 -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS)
133 # #set (HB_VERSION_H "${PROJECT_SOURCE_DIR}/src/hb-version.h")
139 string(REGEX MATCH "${variable} = ([^$]+)\\$" temp "${makefile_source}")
140 string(REGEX MATCHALL "[^ \n\t\\]+" listVar "${CMAKE_MATCH_1}")
183 string(REGEX MATCH "\\[(([0-9]+)\\.([0-9]+)\\.([0-9]+))\\]" HB_VERSION_MATCH ${CONFIGUREAC})
205 add_definitions(-DHAVE_FREETYPE=1)
207 list(APPEND project_headers ${PROJECT_SOURCE_DIR}/src/hb-ft.h)
221 add_definitions(-DHAVE_GRAPHITE2)
228 list(APPEND project_headers ${PROJECT_SOURCE_DIR}/src/hb-graphite2.h)
238 add_definitions(-DHAVE_GLIB)
242 pkg_check_modules(PC_GLIB QUIET glib-2.0)
244 find_library(GLIB_LIBRARIES NAMES glib-2.0 HINTS ${PC_GLIB_LIBDIR} ${PC_GLIB_LIBRARY_DIRS})
245 …R} ${PC_LIBRARY_DIRS} ${PC_GLIB_INCLUDEDIR} ${PC_GLIB_INCLUDE_DIRS} PATH_SUFFIXES glib-2.0/include)
246 …NCLUDE_DIR NAMES glib.h HINTS ${PC_GLIB_INCLUDEDIR} ${PC_GLIB_INCLUDE_DIRS} PATH_SUFFIXES glib-2.0)
250 list(APPEND project_headers ${PROJECT_SOURCE_DIR}/src/hb-glib.h)
254 list(APPEND PC_REQUIRES_PRIV "glib-2.0 >= 2.19.1")
260 add_definitions(-DHAVE_ICU)
264 pkg_check_modules(PC_ICU QUIET icu-uc)
271 list(APPEND project_headers ${PROJECT_SOURCE_DIR}/src/hb-icu.h)
280 add_definitions(-DHAVE_CORETEXT)
282 list(APPEND project_headers ${PROJECT_SOURCE_DIR}/src/hb-coretext.h)
288 list(APPEND PC_LIBS_PRIV "-framework CoreFoundation")
295 list(APPEND PC_LIBS_PRIV "-framework CoreText")
302 list(APPEND PC_LIBS_PRIV "-framework CoreGraphics")
309 list(APPEND PC_LIBS_PRIV "-framework ApplicationServices")
317 add_definitions(-DHAVE_GDI)
318 list(APPEND project_headers ${PROJECT_SOURCE_DIR}/src/hb-gdi.h)
320 list(APPEND PC_LIBS_PRIV -lgdi32)
324 add_definitions(-DHAVE_UNISCRIBE)
325 list(APPEND project_headers ${PROJECT_SOURCE_DIR}/src/hb-uniscribe.h)
327 list(APPEND PC_LIBS_PRIV -lusp10 -lgdi32 -lrpcrt4)
339 add_definitions(-DHAVE_DIRECTWRITE)
340 list(APPEND project_headers ${PROJECT_SOURCE_DIR}/src/hb-directwrite.h)
344 add_definitions(-DHAVE_GOBJECT)
347 # Use the hints from glib-2.0.pc to find glib-mkenums
349 pkg_check_modules(PC_GLIB QUIET glib-2.0)
350 find_program(GLIB_MKENUMS glib-mkenums
356 # In Visual Studio builds, shebang lines are not supported
358 # first determine whether glib-mkenums is a Python or PERL
360 execute_process(COMMAND "${PYTHON_EXECUTABLE}" "${GLIB_MKENUMS}" --version
368 execute_process(COMMAND "${PERL_EXECUTABLE}" "${GLIB_MKENUMS}" --version
377 message(FATAL_ERROR "Unable to determine type of glib-mkenums script")
384 …message(FATAL_ERROR "HB_HAVE_GOBJECT was set, but we failed to find glib-mkenums, which is require…
387 pkg_check_modules(PC_GOBJECT QUIET gobject-2.0)
389 find_library(GOBJECT_LIBRARIES NAMES gobject-2.0 HINTS ${PC_GLIB_LIBDIR} ${PC_GLIB_LIBRARY_DIRS})
390 …_path(GOBJECT_INCLUDE_DIR NAMES glib-object.h HINTS ${PC_GLIB_INCLUDEDIR} ${PC_GLIB_INCLUDE_DIRS} …
395 list(APPEND hb_gobject_sources ${PROJECT_SOURCE_DIR}/src/hb-gobject-structs.cc)
397 ${CMAKE_CURRENT_BINARY_DIR}/src/hb-gobject-enums.cc
400 ${PROJECT_SOURCE_DIR}/src/hb-gobject-structs.h
403 ${PROJECT_SOURCE_DIR}/src/hb-gobject.h
407 ${CMAKE_CURRENT_BINARY_DIR}/src/hb-gobject-enums.h
411 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/src/hb-gobject-enums.h
413 --template=${PROJECT_SOURCE_DIR}/src/hb-gobject-enums.h.tmpl
414 --identifier-prefix hb_
415 --symbol-prefix hb_gobject
418 > ${CMAKE_CURRENT_BINARY_DIR}/src/hb-gobject-enums.h.tmp
420 "-DENUM_INPUT_SRC=${CMAKE_CURRENT_BINARY_DIR}/src/hb-gobject-enums.h.tmp"
421 "-DENUM_OUTPUT_SRC=${CMAKE_CURRENT_BINARY_DIR}/src/hb-gobject-enums.h"
422 -P ${PROJECT_SOURCE_DIR}/replace-enum-strings.cmake
423 DEPENDS ${PROJECT_SOURCE_DIR}/src/hb-gobject-enums.h.tmpl
429 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/src/hb-gobject-enums.cc
431 --template=${PROJECT_SOURCE_DIR}/src/hb-gobject-enums.cc.tmpl
432 --identifier-prefix hb_
433 --symbol-prefix hb_gobject
436 > ${CMAKE_CURRENT_BINARY_DIR}/src/hb-gobject-enums.cc.tmp
438 "-DENUM_INPUT_SRC=${CMAKE_CURRENT_BINARY_DIR}/src/hb-gobject-enums.cc.tmp"
439 "-DENUM_OUTPUT_SRC=${CMAKE_CURRENT_BINARY_DIR}/src/hb-gobject-enums.cc"
440 -P ${PROJECT_SOURCE_DIR}/replace-enum-strings.cmake
441 DEPENDS ${PROJECT_SOURCE_DIR}/src/hb-gobject-enums.cc.tmpl
442 ${CMAKE_CURRENT_BINARY_DIR}/src/hb-gobject-enums.h
460 ## Define harfbuzz-icu library
462 add_library(harfbuzz-icu ${PROJECT_SOURCE_DIR}/src/hb-icu.cc ${PROJECT_SOURCE_DIR}/src/hb-icu.h)
463 add_dependencies(harfbuzz-icu harfbuzz)
464 target_link_libraries(harfbuzz-icu harfbuzz ${THIRD_PARTY_LIBS})
467 set_target_properties(harfbuzz harfbuzz-icu PROPERTIES VISIBILITY_INLINES_HIDDEN TRUE)
472 ## Define harfbuzz-subset library
474 add_library(harfbuzz-subset ${subset_project_sources} ${subset_project_headers})
475 list(APPEND project_headers ${PROJECT_SOURCE_DIR}/src/hb-subset.h)
476 add_dependencies(harfbuzz-subset harfbuzz)
477 target_link_libraries(harfbuzz-subset harfbuzz ${THIRD_PARTY_LIBS})
480 set_target_properties(harfbuzz harfbuzz-subset PROPERTIES VISIBILITY_INLINES_HIDDEN TRUE)
487 CHECK_CXX_COMPILER_FLAG(-Bsymbolic-functions CXX_SUPPORTS_FLAG_BSYMB_FUNCS)
489 link_libraries(-Bsymbolic-functions)
492 # As of CMake 3.0.0, the compiler id for Apple-provided Clang is now "AppleClang";
496 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti -fno-exceptions")
501 set_target_properties(harfbuzz-subset PROPERTIES LINKER_LANGUAGE C)
505 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-threadsafe-statics")
508 CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
510 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
517 ## Define harfbuzz-gobject library
519 add_library(harfbuzz-gobject
526 add_dependencies(harfbuzz-gobject harfbuzz)
527 target_link_libraries(harfbuzz-gobject harfbuzz ${GOBJECT_LIBRARIES} ${THIRD_PARTY_LIBS})
530 set_target_properties(harfbuzz-gobject PROPERTIES VISIBILITY_INLINES_HIDDEN TRUE)
535 add_definitions("-DHB_DLL_EXPORT")
538 # On Windows, g-ir-scanner requires a DLL build in order for it to work
548 pkg_check_modules(PC_GI QUIET gobject-introspection-1.0)
550 find_program(G_IR_SCANNER g-ir-scanner
554 find_program(G_IR_COMPILER g-ir-compiler
571 set (hb_libpath "$<TARGET_FILE_DIR:harfbuzz-gobject>")
574 # Get the CFlags that we used to build HarfBuzz/HarfBuzz-GObject
577 list(APPEND hb_defines_cflags "-D${hb_cflag}")
580 # Get the other dependent libraries we used to build HarfBuzz/HarfBuzz-GObject
585 list(APPEND extra_libs "--extra-library=${extra_lib_stripped}")
599 # otherwise g-ir-scanner won't like it and give us a bunch
602 STRING(SUBSTRING "${f}" 1 -1 path)
603 if (drive MATCHES "[A-Z]")
621 TARGET harfbuzz-gobject
624 --warn-all --no-libtool --verbose
625 --namespace=HarfBuzz
626 --nsversion=0.0
627 --symbol-prefix=hb
628 --symbol-prefix=hb_gobject
629 --identifier-prefix=hb_
630 --include GObject-2.0
631 --pkg-export=harfbuzz-gobject
632 --c-include=hb-gobject.h
633 --cflags-begin
634 -I${PROJECT_SOURCE_DIR}/src
635 -I${PROJECT_BINARY_DIR}/src
638 -DHB_H
639 -DHB_H_IN
640 -DHB_OT_H
641 -DHB_OT_H_IN
642 -DHB_AAT_H
643 -DHB_AAT_H_IN
644 -DHB_GOBJECT_H
645 -DHB_GOBJECT_H_IN
646 -DHB_EXTERN=
647 --cflags-end
648 --library=harfbuzz-gobject
649 --library=harfbuzz
650 -L${hb_libpath}
652 --filelist ${CMAKE_CURRENT_BINARY_DIR}/src/hb_gir_list
653 -o ${hb_libpath}/HarfBuzz-0.0.gir
654 DEPENDS harfbuzz-gobject harfbuzz ${CMAKE_CURRENT_BINARY_DIR}/src/hb_gir_list
658 TARGET harfbuzz-gobject
661 --verbose --debug
662 --includedir ${CMAKE_CURRENT_BINARY_DIR}
663 ${hb_libpath}/HarfBuzz-0.0.gir
664 -o ${hb_libpath}/HarfBuzz-0.0.typelib
665 DEPENDS ${hb_libpath}/HarfBuzz-0.0.gir harfbuzz-gobject
693 add_definitions("-DPACKAGE_NAME=\"HarfBuzz\"")
694 add_definitions("-DPACKAGE_VERSION=\"${HB_VERSION}\"")
697 add_executable(hb-view ${HB_VIEW_sources})
698 target_link_libraries(hb-view harfbuzz ${CAIRO_LIBRARIESNAMES})
700 add_executable(hb-shape ${HB_SHAPE_sources})
701 target_link_libraries(hb-shape harfbuzz)
703 add_executable(hb-subset ${HB_SUBSET_CLI_sources})
704 target_link_libraries(hb-subset harfbuzz harfbuzz-subset)
706 add_executable(hb-ot-shape-closure ${HB_OT_SHAPE_CLOSURE_sources})
707 target_link_libraries(hb-ot-shape-closure harfbuzz)
729 # Macro to write pkg-config .pc configuration files
775 install(TARGETS harfbuzz-icu
781 make_pkgconfig_pc_file("harfbuzz-icu")
784 install(TARGETS harfbuzz-subset
787 make_pkgconfig_pc_file("harfbuzz-subset")
791 install(TARGETS harfbuzz-subset
795 install(TARGETS hb-view
798 install(TARGETS hb-subset
802 install(TARGETS hb-shape
806 install(TARGETS hb-ot-shape-closure
811 install(TARGETS harfbuzz-gobject
816 make_pkgconfig_pc_file("harfbuzz-gobject")
821 set (hb_libpath "$<TARGET_FILE_DIR:harfbuzz-gobject>")
824 install(FILES "${hb_libpath}/HarfBuzz-0.0.gir"
825 DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/gir-1.0
828 install(FILES "${hb_libpath}/HarfBuzz-0.0.typelib"
829 DESTINATION ${CMAKE_INSTALL_LIBDIR}/girepository-1.0