1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
|
include(GLib.cmake)
include(inspector/remote/GLib.cmake)
set(JavaScriptCore_OUTPUT_NAME javascriptcoregtk-${WEBKITGTK_API_VERSION})
configure_file(javascriptcoregtk.pc.in ${JavaScriptCore_PKGCONFIG_FILE} @ONLY)
if (EXISTS "${TOOLS_DIR}/glib/apply-build-revision-to-files.py")
add_custom_target(JavaScriptCore-build-revision
${PYTHON_EXECUTABLE} "${TOOLS_DIR}/glib/apply-build-revision-to-files.py" ${JavaScriptCore_PKGCONFIG_FILE}
DEPENDS ${JavaScriptCore_PKGCONFIG_FILE}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} VERBATIM)
list(APPEND JavaScriptCore_DEPENDENCIES
JavaScriptCore-build-revision
)
endif ()
install(FILES "${CMAKE_BINARY_DIR}/Source/JavaScriptCore/javascriptcoregtk-${WEBKITGTK_API_VERSION}.pc"
DESTINATION "${LIB_INSTALL_DIR}/pkgconfig"
)
install(FILES ${JavaScriptCore_PUBLIC_FRAMEWORK_HEADERS}
DESTINATION "${WEBKITGTK_HEADER_INSTALL_DIR}/JavaScriptCore"
)
install(FILES ${JavaScriptCore_INSTALLED_HEADERS}
DESTINATION "${WEBKITGTK_HEADER_INSTALL_DIR}/jsc"
)
if (ENABLE_INTROSPECTION)
install(FILES ${CMAKE_BINARY_DIR}/JavaScriptCore-${WEBKITGTK_API_VERSION}.gir
DESTINATION ${INTROSPECTION_INSTALL_GIRDIR}
)
install(FILES ${CMAKE_BINARY_DIR}/JavaScriptCore-${WEBKITGTK_API_VERSION}.typelib
DESTINATION ${INTROSPECTION_INSTALL_TYPELIBDIR}
)
endif ()
add_definitions(-DJSC_COMPILATION)
list(APPEND JavaScriptCore_LIBRARIES
${GLIB_LIBRARIES}
)
list(APPEND JavaScriptCore_SYSTEM_INCLUDE_DIRECTORIES
${GLIB_INCLUDE_DIRS}
)
if (ENABLE_INTROSPECTION)
# Add ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} to LD_LIBRARY_PATH or DYLD_LIBRARY_PATH
if (APPLE)
set(LOADER_LIBRARY_PATH_VAR "DYLD_LIBRARY_PATH")
set(PREV_LOADER_LIBRARY_PATH "$ENV{DYLD_LIBRARY_PATH}")
else ()
set(LOADER_LIBRARY_PATH_VAR "LD_LIBRARY_PATH")
set(PREV_LOADER_LIBRARY_PATH "$ENV{LD_LIBRARY_PATH}")
endif ()
string(COMPARE EQUAL "${PREV_LOADER_LIBRARY_PATH}" "" ld_library_path_does_not_exist)
if (ld_library_path_does_not_exist)
set(INTROSPECTION_ADDITIONAL_LIBRARY_PATH "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
else ()
set(INTROSPECTION_ADDITIONAL_LIBRARY_PATH "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}:${PREV_LOADER_LIBRARY_PATH}")
endif ()
# Add required -L flags from ${CMAKE_SHARED_LINKER_FLAGS} for g-ir-scanner
string(REGEX MATCHALL "-L[^ ]*" INTROSPECTION_ADDITIONAL_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}")
if (${INTROSPECTION_HAVE_SOURCES_TOP_DIRS})
set(GIR_SOURCES_TOP_DIRS "--sources-top-dirs=${CMAKE_BINARY_DIR}")
endif ()
add_custom_command(
OUTPUT ${CMAKE_BINARY_DIR}/JavaScriptCore-${WEBKITGTK_API_VERSION}.gir
DEPENDS JavaScriptCore
COMMAND CC=${CMAKE_C_COMPILER} CFLAGS=-Wno-deprecated-declarations LDFLAGS=
${LOADER_LIBRARY_PATH_VAR}="${INTROSPECTION_ADDITIONAL_LIBRARY_PATH}"
${INTROSPECTION_SCANNER}
--quiet
--warn-all
--warn-error
--symbol-prefix=jsc
--identifier-prefix=JSC
--namespace=JavaScriptCore
--nsversion=${WEBKITGTK_API_VERSION}
--include=GObject-2.0
--library=javascriptcoregtk-${WEBKITGTK_API_VERSION}
-L${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
${INTROSPECTION_ADDITIONAL_LINKER_FLAGS}
--no-libtool
--pkg=gobject-2.0
--pkg-export=javascriptcoregtk-${WEBKITGTK_API_VERSION}
--output=${CMAKE_BINARY_DIR}/JavaScriptCore-${WEBKITGTK_API_VERSION}.gir
${GIR_SOURCES_TOP_DIRS}
--c-include="jsc/jsc.h"
-DJSC_COMPILATION
-I${JAVASCRIPTCORE_DIR}/API/glib
-I${JavaScriptCoreGLib_DERIVED_SOURCES_DIR}
-I${JavaScriptCoreGLib_FRAMEWORK_HEADERS_DIR}
${JavaScriptCore_INSTALLED_HEADERS}
${JAVASCRIPTCORE_DIR}/API/glib/*.cpp
)
add_custom_command(
OUTPUT ${CMAKE_BINARY_DIR}/JavaScriptCore-${WEBKITGTK_API_VERSION}.typelib
DEPENDS ${CMAKE_BINARY_DIR}/JavaScriptCore-${WEBKITGTK_API_VERSION}.gir
COMMAND ${INTROSPECTION_COMPILER} --includedir=${CMAKE_BINARY_DIR} ${CMAKE_BINARY_DIR}/JavaScriptCore-${WEBKITGTK_API_VERSION}.gir -o ${CMAKE_BINARY_DIR}/JavaScriptCore-${WEBKITGTK_API_VERSION}.typelib
VERBATIM
)
ADD_TYPELIB(${CMAKE_BINARY_DIR}/JavaScriptCore-${WEBKITGTK_API_VERSION}.typelib)
endif ()
file(WRITE ${CMAKE_BINARY_DIR}/gtkdoc-jsc-glib.cfg
"[jsc-glib-${WEBKITGTK_API_DOC_VERSION}]\n"
"pkgconfig_file=${JavaScriptCore_PKGCONFIG_FILE}\n"
"decorator=JSC_API\n"
"deprecation_guard=JSC_DISABLE_DEPRECATED\n"
"namespace=jsc\n"
"cflags=-I${JAVASCRIPTCORE_DIR}/API/glib\n"
" -I${JavaScriptCoreGLib_DERIVED_SOURCES_DIR}\n"
" -I${JavaScriptCoreGLib_FRAMEWORK_HEADERS_DIR}\n"
"doc_dir=${JAVASCRIPTCORE_DIR}/API/glib/docs\n"
"source_dirs=${JAVASCRIPTCORE_DIR}/API/glib\n"
"headers=${JavaScriptCore_INSTALLED_HEADERS}\n"
"main_sgml_file=jsc-glib-docs.sgml\n"
)
|