Added SDK
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
include(Platform)
|
||||
|
||||
if (${UL_ENABLE_STATIC_BUILD})
|
||||
include(StaticLibs)
|
||||
endif ()
|
||||
|
||||
set(SDK_ROOT "${UL_SDK_PATH}")
|
||||
|
||||
set(ULTRALIGHT_INCLUDE_DIR "${SDK_ROOT}/include")
|
||||
set(ULTRALIGHT_BINARY_DIR "${SDK_ROOT}/bin")
|
||||
set(ULTRALIGHT_INSPECTOR_DIR "${SDK_ROOT}/inspector")
|
||||
set(ULTRALIGHT_RESOURCES_DIR "${SDK_ROOT}/resources")
|
||||
set(ULTRALIGHT_LIBRARY_DIR "${SDK_ROOT}/bin"
|
||||
"${SDK_ROOT}/lib")
|
||||
|
||||
get_filename_component(INFO_PLIST_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Info.plist.in" REALPATH)
|
||||
get_filename_component(ENTITLEMENTS_PLIST_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Entitlements.plist" REALPATH)
|
||||
|
||||
macro(add_console_app APP_NAME)
|
||||
include_directories("${ULTRALIGHT_INCLUDE_DIR}")
|
||||
link_directories("${ULTRALIGHT_LIBRARY_DIR}")
|
||||
link_libraries(UltralightCore Ultralight WebCore AppCore)
|
||||
|
||||
if (${UL_ENABLE_STATIC_BUILD})
|
||||
add_definitions(-DULTRALIGHT_STATIC_BUILD)
|
||||
link_libraries(${UL_STATIC_LIBS})
|
||||
endif ()
|
||||
|
||||
if (UL_PLATFORM MATCHES "macos")
|
||||
SET(CMAKE_INSTALL_RPATH ".")
|
||||
endif ()
|
||||
|
||||
add_executable(${APP_NAME} ${ARGN})
|
||||
|
||||
# Always link to the C++ standard library
|
||||
set_target_properties(${APP_NAME} PROPERTIES LINKER_LANGUAGE CXX)
|
||||
|
||||
set(INSTALL_PATH "${INSTALL_DIR}/${APP_NAME}")
|
||||
|
||||
INSTALL(TARGETS ${APP_NAME}
|
||||
RUNTIME DESTINATION "${INSTALL_PATH}"
|
||||
BUNDLE DESTINATION "${INSTALL_PATH}")
|
||||
|
||||
INSTALL(DIRECTORY "${ULTRALIGHT_BINARY_DIR}/" DESTINATION "${INSTALL_PATH}")
|
||||
INSTALL(DIRECTORY "${ULTRALIGHT_RESOURCES_DIR}" DESTINATION "${INSTALL_PATH}/assets")
|
||||
INSTALL(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/assets/" DESTINATION "${INSTALL_PATH}/assets" OPTIONAL)
|
||||
endmacro ()
|
||||
|
||||
macro(add_app APP_NAME)
|
||||
include_directories("${ULTRALIGHT_INCLUDE_DIR}")
|
||||
link_directories("${ULTRALIGHT_LIBRARY_DIR}")
|
||||
link_libraries(UltralightCore AppCore Ultralight WebCore)
|
||||
|
||||
if (${UL_ENABLE_STATIC_BUILD})
|
||||
add_definitions(-DULTRALIGHT_STATIC_BUILD)
|
||||
link_libraries(${UL_STATIC_LIBS} ${APPCORE_STATIC_LIBS})
|
||||
endif ()
|
||||
|
||||
add_executable(${APP_NAME} WIN32 MACOSX_BUNDLE ${ARGN})
|
||||
|
||||
# Always link to the C++ standard library
|
||||
set_target_properties(${APP_NAME} PROPERTIES LINKER_LANGUAGE CXX)
|
||||
|
||||
set(INSTALL_PATH "${INSTALL_DIR}/${APP_NAME}")
|
||||
|
||||
if (UL_PLATFORM MATCHES "macos")
|
||||
# Include Entitlements.plist
|
||||
set_source_files_properties(${ENTITLEMENTS_PLIST_PATH} PROPERTIES MACOSX_PACKAGE_LOCATION "Contents")
|
||||
|
||||
# Enable High-DPI on macOS through our custom Info.plist template
|
||||
set_target_properties(${APP_NAME} PROPERTIES
|
||||
BUNDLE True
|
||||
MACOSX_BUNDLE_GUI_IDENTIFIER ultralight.${APP_NAME}
|
||||
MACOSX_BUNDLE_BUNDLE_NAME ${APP_NAME}
|
||||
MACOSX_BUNDLE_EXECUTABLE_NAME ${APP_NAME}
|
||||
MACOSX_BUNDLE_BUNDLE_VERSION "1.0"
|
||||
MACOSX_BUNDLE_SHORT_VERSION_STRING "1.0"
|
||||
MACOSX_BUNDLE_INFO_PLIST ${INFO_PLIST_PATH}
|
||||
)
|
||||
|
||||
# Set the install destination for the app bundle
|
||||
set(BUNDLE_INSTALL_PATH "${INSTALL_PATH}/${APP_NAME}.app")
|
||||
set(BUNDLE_EXEC_PATH "${BUNDLE_INSTALL_PATH}/Contents/MacOS")
|
||||
set(BUNDLE_RESOURCE_PATH "${BUNDLE_INSTALL_PATH}/Contents/Resources")
|
||||
set(BUNDLE_ASSETS_PATH "${BUNDLE_RESOURCE_PATH}/assets")
|
||||
|
||||
install(TARGETS ${APP_NAME} BUNDLE DESTINATION "${INSTALL_PATH}")
|
||||
|
||||
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/assets/" DESTINATION "${BUNDLE_ASSETS_PATH}" OPTIONAL)
|
||||
install(DIRECTORY "${ULTRALIGHT_RESOURCES_DIR}" DESTINATION "${BUNDLE_ASSETS_PATH}")
|
||||
if (NEEDS_INSPECTOR)
|
||||
install(DIRECTORY "${ULTRALIGHT_INSPECTOR_DIR}" DESTINATION "${BUNDLE_ASSETS_PATH}")
|
||||
endif ()
|
||||
install(DIRECTORY "${ULTRALIGHT_BINARY_DIR}/" DESTINATION "${BUNDLE_EXEC_PATH}")
|
||||
else ()
|
||||
if (UL_PLATFORM MATCHES "windows")
|
||||
# Use main instead of WinMain for Windows subsystem executables
|
||||
set_target_properties(${APP_NAME} PROPERTIES LINK_FLAGS "/ENTRY:mainCRTStartup")
|
||||
endif()
|
||||
|
||||
set(ASSETS_PATH "${INSTALL_PATH}/assets")
|
||||
set(BIN_PATH "${INSTALL_PATH}")
|
||||
|
||||
install(TARGETS ${APP_NAME} RUNTIME DESTINATION "${INSTALL_PATH}")
|
||||
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/assets/" DESTINATION "${ASSETS_PATH}" OPTIONAL)
|
||||
install(DIRECTORY "${ULTRALIGHT_RESOURCES_DIR}" DESTINATION "${ASSETS_PATH}")
|
||||
if (NEEDS_INSPECTOR)
|
||||
install(DIRECTORY "${ULTRALIGHT_INSPECTOR_DIR}" DESTINATION "${ASSETS_PATH}")
|
||||
endif ()
|
||||
install(DIRECTORY "${ULTRALIGHT_BINARY_DIR}/" DESTINATION "${BIN_PATH}")
|
||||
endif ()
|
||||
endmacro ()
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>com.apple.security.app-sandbox</key>
|
||||
<true/>
|
||||
<key>com.apple.security.files.user-selected.read-write</key>
|
||||
<true/>
|
||||
<key>com.apple.security.network.client</key>
|
||||
<true/>
|
||||
<key>com.apple.security.files.downloads.read-write</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,22 @@
|
||||
include(BundleUtilities)
|
||||
|
||||
# Set bundle to the full path name of the executable already
|
||||
# existing in the install tree:
|
||||
set(bundle "@BUNDLE_PATH@")
|
||||
|
||||
# Set other_libs to a list of full path names to additional
|
||||
# libraries that cannot be reached by dependency analysis.
|
||||
# (Dynamically loaded PlugIns, for example.)
|
||||
set(other_libs "")
|
||||
|
||||
# Set dirs to a list of directories where prerequisite libraries
|
||||
# may be found:
|
||||
set(dirs
|
||||
"@CMAKE_RUNTIME_OUTPUT_DIRECTORY@"
|
||||
"@CMAKE_LIBRARY_OUTPUT_DIRECTORY@"
|
||||
"@ULTRALIGHT_BINARY_DIR@"
|
||||
"/usr/local/opt/llvm@11/lib/"
|
||||
)
|
||||
|
||||
fixup_bundle("${bundle}" "${other_libs}" "${dirs}")
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${MACOSX_BUNDLE_EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string>${MACOSX_BUNDLE_INFO_STRING}</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>${MACOSX_BUNDLE_ICON_FILE}</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>${MACOSX_BUNDLE_GUI_IDENTIFIER}</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleLongVersionString</key>
|
||||
<string>${MACOSX_BUNDLE_LONG_VERSION_STRING}</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${MACOSX_BUNDLE_BUNDLE_NAME}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>${MACOSX_BUNDLE_SHORT_VERSION_STRING}</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>${MACOSX_BUNDLE_BUNDLE_VERSION}</string>
|
||||
<key>CSResourcesFileMapped</key>
|
||||
<true/>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>${MACOSX_BUNDLE_COPYRIGHT}</string>
|
||||
<key>NSHighResolutionCapable</key>
|
||||
<string>true</string>
|
||||
<key>NSAppSandbox</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,21 @@
|
||||
if (NOT UL_PLATFORM)
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Windows")
|
||||
set(UL_PLATFORM "windows")
|
||||
elseif (CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
||||
set(UL_PLATFORM "macos")
|
||||
elseif (CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||
set(UL_PLATFORM "linux")
|
||||
else ()
|
||||
message(FATAL_ERROR "Unable to detect target platform. Please manually specify UL_PLATFORM when running CMake.")
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
if (UL_PLATFORM MATCHES "macos")
|
||||
SET(CMAKE_SKIP_BUILD_RPATH FALSE)
|
||||
SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
|
||||
SET(CMAKE_INSTALL_RPATH "@executable_path/")
|
||||
elseif (UL_PLATFORM MATCHES "linux")
|
||||
SET(CMAKE_SKIP_BUILD_RPATH FALSE)
|
||||
SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
|
||||
SET(CMAKE_INSTALL_RPATH "$\{ORIGIN\}")
|
||||
endif ()
|
||||
Reference in New Issue
Block a user