this repo has no description
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add ability to install individual components

This change allows you to build multiple components and still choose to
install only some of them using CMake's `cmake_install.cmake` script.

authored by

Ariel Abreu and committed by
Thomas A
1edcfebc 1ad855c8

+128 -19
+9 -1
CMakeLists.txt
··· 46 46 cmake_minimum_required(VERSION 3.10) 47 47 enable_language(ASM) 48 48 49 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "core") 50 + 49 51 set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") 50 52 include(InstallSymlink) 51 53 include(MacroEnsureOutOfSourceBuild) ··· 107 109 option(ENABLE_TESTS "Install in-prefix unit tests" OFF) 108 110 option(REGENERATE_SDK "Regenerate Header Files For Open Source SDK" OFF) 109 111 110 - set(COMPONENTS "stock" CACHE STRING "Choose which components of Darling to build") 112 + if (DEBIAN_PACKAGING) 113 + set(COMPONENTS_DEFAULT "all") 114 + else() 115 + set(COMPONENTS_DEFAULT "stock") 116 + endif() 117 + 118 + set(COMPONENTS "${COMPONENTS_DEFAULT}" CACHE STRING "Choose which components of Darling to build") 111 119 include(darling_parse_components) 112 120 darling_parse_components("${COMPONENTS}") 113 121
+16 -2
cmake/InstallSymlink.cmake
··· 14 14 # _sympath: absolute path of the installed symlink 15 15 16 16 macro(InstallSymlink _filepath _sympath) 17 + cmake_parse_arguments(INSTALL_SYMLINK "EXCLUDE_FROM_ALL" "COMPONENT" "" ${ARGN}) 18 + 17 19 get_filename_component(_symname ${_sympath} NAME) 18 20 get_filename_component(_installdir ${_sympath} PATH) 19 21 22 + if (INSTALL_SYMLINK_EXCLUDE_FROM_ALL) 23 + set(EXCLUDE_FROM_ALL_ARG "EXCLUDE_FROM_ALL") 24 + else() 25 + set(EXCLUDE_FROM_ALL_ARG "") 26 + endif() 27 + 28 + if (DEFINED INSTALL_SYMLINK_COMPONENT) 29 + set(COMPONENT_ARG COMPONENT "${INSTALL_SYMLINK_COMPONENT}") 30 + else() 31 + set(COMPONENT_ARG "") 32 + endif() 33 + 20 34 if (BINARY_PACKAGING_MODE) 21 35 execute_process(COMMAND "${CMAKE_COMMAND}" -E create_symlink 22 36 ${_filepath} 23 37 ${CMAKE_CURRENT_BINARY_DIR}/${_symname}) 24 38 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${_symname} 25 - DESTINATION ${_installdir}) 39 + DESTINATION ${_installdir} ${EXCLUDE_FROM_ALL_ARG} ${COMPONENT_ARG}) 26 40 else () 27 41 # scripting the symlink installation at install time should work 28 42 # for CMake 2.6.x and 2.8.x ··· 38 52 ${_filepath} 39 53 \$ENV{DESTDIR}/${_installdir}/${_symname}) 40 54 endif () 41 - ") 55 + " ${EXCLUDE_FROM_ALL_ARG} ${COMPONENT_ARG}) 42 56 endif () 43 57 endmacro(InstallSymlink)
+21 -13
cmake/darling_framework.cmake
··· 7 7 FULL_DOCS "Used to make reexporting child frameworks less painful.") 8 8 9 9 function(add_framework name) 10 - cmake_parse_arguments(FRAMEWORK "CURRENT_VERSION;FAT;PRIVATE;IOSSUPPORT;CIRCULAR;NO_INSTALL" "VERSION;LINK_FLAGS;PARENT;PARENT_VERSION;TARGET_NAME" 10 + cmake_parse_arguments(FRAMEWORK "CURRENT_VERSION;FAT;PRIVATE;IOSSUPPORT;CIRCULAR;NO_INSTALL" "VERSION;LINK_FLAGS;PARENT;PARENT_VERSION;TARGET_NAME;PARENT_COMPONENT" 11 11 "SOURCES;DEPENDENCIES;CIRCULAR_DEPENDENCIES;RESOURCES;UPWARD_DEPENDENCIES;OBJECTS;STRONG_DEPENDENCIES" ${ARGN}) 12 + 13 + if (FRAMEWORK_NO_INSTALL) 14 + set(EXCLUDE_FROM_ALL_ARG "EXCLUDE_FROM_ALL") 15 + else() 16 + set(EXCLUDE_FROM_ALL_ARG "") 17 + endif() 12 18 13 19 if (DEFINED FRAMEWORK_TARGET_NAME) 14 20 set(my_name "${FRAMEWORK_TARGET_NAME}") ··· 35 41 # 99% of the time it's version A 36 42 set(FRAMEWORK_PARENT_VERSION "A") 37 43 endif(NOT DEFINED FRAMEWORK_PARENT_VERSION) 38 - if (NOT FRAMEWORK_NO_INSTALL) 39 - InstallSymlink(Versions/Current/Frameworks 40 - "${CMAKE_INSTALL_PREFIX}/libexec/darling/${sys_library_dir}/${dir_name}/${FRAMEWORK_PARENT}.framework/Frameworks") 44 + if (DEFINED FRAMEWORK_PARENT_COMPONENT) 45 + set(COMPONENT_ARG COMPONENT "${FRAMEWORK_PARENT_COMPONENT}") 46 + else() 47 + set(COMPONENT_ARG "") 41 48 endif() 49 + InstallSymlink(Versions/Current/Frameworks 50 + "${CMAKE_INSTALL_PREFIX}/libexec/darling/${sys_library_dir}/${dir_name}/${FRAMEWORK_PARENT}.framework/Frameworks" 51 + ${EXCLUDE_FROM_ALL_ARG} ${COMPONENT_ARG}) 42 52 set(dir_name "${dir_name}/${FRAMEWORK_PARENT}.framework/Versions/${FRAMEWORK_PARENT_VERSION}/Frameworks") 43 53 endif(DEFINED FRAMEWORK_PARENT) 44 54 ··· 88 98 set_property(TARGET ${my_name} APPEND_STRING PROPERTY LINK_FLAGS " ${FRAMEWORK_LINK_FLAGS}") 89 99 endif (FRAMEWORK_LINK_FLAGS) 90 100 91 - if (NOT FRAMEWORK_NO_INSTALL) 92 - install(TARGETS ${my_name} DESTINATION "libexec/darling/${sys_library_dir}/${dir_name}/${name}.framework/Versions/${FRAMEWORK_VERSION}/") 93 - endif() 101 + install(TARGETS ${my_name} DESTINATION "libexec/darling/${sys_library_dir}/${dir_name}/${name}.framework/Versions/${FRAMEWORK_VERSION}/" ${EXCLUDE_FROM_ALL_ARG}) 94 102 95 - if (FRAMEWORK_RESOURCES AND NOT FRAMEWORK_NO_INSTALL) 103 + if (FRAMEWORK_RESOURCES) 96 104 if (FRAMEWORK_CURRENT_VERSION) 97 - InstallSymlink("Versions/Current/Resources" "${CMAKE_INSTALL_PREFIX}/libexec/darling/${sys_library_dir}/${dir_name}/${name}.framework/Resources") 105 + InstallSymlink("Versions/Current/Resources" "${CMAKE_INSTALL_PREFIX}/libexec/darling/${sys_library_dir}/${dir_name}/${name}.framework/Resources" ${EXCLUDE_FROM_ALL_ARG}) 98 106 endif (FRAMEWORK_CURRENT_VERSION) 99 107 while (FRAMEWORK_RESOURCES) 100 108 list(GET FRAMEWORK_RESOURCES 0 res_install_path) ··· 103 111 get_filename_component(res_install_name ${res_install_path} NAME) 104 112 install(FILES ${res_source_path} 105 113 DESTINATION libexec/darling/${sys_library_dir}/${dir_name}/${name}.framework/Versions/${FRAMEWORK_VERSION}/Resources/${res_install_dir} 106 - RENAME ${res_install_name}) 114 + RENAME ${res_install_name} ${EXCLUDE_FROM_ALL_ARG}) 107 115 list(REMOVE_AT FRAMEWORK_RESOURCES 0 1) 108 116 endwhile (FRAMEWORK_RESOURCES) 109 117 endif() 110 118 111 - if (FRAMEWORK_CURRENT_VERSION AND NOT FRAMEWORK_NO_INSTALL) 112 - InstallSymlink(${FRAMEWORK_VERSION} "${CMAKE_INSTALL_PREFIX}/libexec/darling/${sys_library_dir}/${dir_name}/${name}.framework/Versions/Current") 113 - InstallSymlink("Versions/Current/${name}" "${CMAKE_INSTALL_PREFIX}/libexec/darling/${sys_library_dir}/${dir_name}/${name}.framework/${name}") 119 + if (FRAMEWORK_CURRENT_VERSION) 120 + InstallSymlink(${FRAMEWORK_VERSION} "${CMAKE_INSTALL_PREFIX}/libexec/darling/${sys_library_dir}/${dir_name}/${name}.framework/Versions/Current" ${EXCLUDE_FROM_ALL_ARG}) 121 + InstallSymlink("Versions/Current/${name}" "${CMAKE_INSTALL_PREFIX}/libexec/darling/${sys_library_dir}/${dir_name}/${name}.framework/${name}" ${EXCLUDE_FROM_ALL_ARG}) 114 122 endif() 115 123 endfunction(add_framework) 116 124
+11 -3
cmake/dsym.cmake
··· 1 1 2 2 function(dsym target) 3 + cmake_parse_arguments(DSYM "EXCLUDE_FROM_ALL" "" "" ${ARGN}) 3 4 string(TOLOWER "${CMAKE_BUILD_TYPE}" build_type) 5 + 6 + if (DSYM_EXCLUDE_FROM_ALL) 7 + set(EXCLUDE_FROM_ALL_ARG "EXCLUDE_FROM_ALL") 8 + else() 9 + set(EXCLUDE_FROM_ALL_ARG "") 10 + endif() 11 + 4 12 if (DSYMUTIL_EXE AND build_type MATCHES debug) 5 13 6 14 add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${target}.dSYM" DEPENDS "${target}" COMMAND ${CMAKE_COMMAND} -E env ··· 9 17 10 18 add_custom_target("${target}-dSYM" ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/${target}.dSYM" getuuid lipo) 11 19 12 - install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${target}.dSYM" DESTINATION "${CMAKE_INSTALL_PREFIX}/libexec/darling/System/Library/Caches/dsym/files") 13 - install(DIRECTORY DESTINATION "${CMAKE_INSTALL_PREFIX}/libexec/darling/System/Library/Caches/dsym/uuid") 20 + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${target}.dSYM" DESTINATION "${CMAKE_INSTALL_PREFIX}/libexec/darling/System/Library/Caches/dsym/files" ${EXCLUDE_FROM_ALL_ARG}) 21 + install(DIRECTORY DESTINATION "${CMAKE_INSTALL_PREFIX}/libexec/darling/System/Library/Caches/dsym/uuid" ${EXCLUDE_FROM_ALL_ARG}) 14 22 15 23 install(CODE "execute_process(COMMAND \"${CMAKE_BINARY_DIR}/src/buildtools/getuuid\" \"${CMAKE_CURRENT_BINARY_DIR}/${target}.dSYM\" RESULT_VARIABLE getuuid_result OUTPUT_VARIABLE macho_uuid) 16 24 ··· 26 34 \$ENV{DESTDIR}/${CMAKE_INSTALL_PREFIX}/libexec/darling/System/Library/Caches/dsym/uuid/\${uuid}.dSYM) 27 35 endforeach (uuid) 28 36 endif() 29 - ") 37 + " ${EXCLUDE_FROM_ALL_ARG}) 30 38 endif () 31 39 32 40 endfunction(dsym)
+39
src/CMakeLists.txt
··· 25 25 # these projects are always built 26 26 # 27 27 28 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "core") 29 + 28 30 #add_subdirectory(external/xcbuild) 29 31 add_subdirectory(bsdln) 30 32 ··· 203 205 # 204 206 205 207 if (COMPONENT_system) 208 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "system") 209 + 206 210 add_subdirectory(external/libiconv) 207 211 add_subdirectory(external/bzip2) 208 212 add_subdirectory(external/libressl-2.8.3) ··· 219 223 endif() 220 224 221 225 if (COMPONENT_cli) 226 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "cli") 227 + 222 228 add_subdirectory(external/darling-dmg) 223 229 add_subdirectory(external/libutil) 224 230 add_subdirectory(xtrace) ··· 280 286 endif() 281 287 282 288 if (COMPONENT_python OR COMPONENT_ruby) 289 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "ffi") 283 290 add_subdirectory(external/libffi) 284 291 endif() 285 292 286 293 if (COMPONENT_cli_dev) 294 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "cli_dev") 287 295 add_subdirectory(libgmalloc) 288 296 endif() 289 297 290 298 if (COMPONENT_cli OR COMPONENT_dev_gui_common) 299 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "cli_gui_common") 300 + 291 301 add_subdirectory(external/libxml2) 292 302 add_subdirectory(external/foundation) 293 303 add_subdirectory(external/cfnetwork/src) ··· 313 323 endif() 314 324 315 325 if (COMPONENT_iokitd) 326 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME iokitd) 316 327 add_subdirectory(external/iokitd) 317 328 endif() 318 329 319 330 if (COMPONENT_dev_gui_common) 331 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "cli_dev_gui_common") 332 + 320 333 add_subdirectory(libaccessibility) 321 334 add_subdirectory(external/openjdk) # *should* be in `cli` component, but requires AppKit 322 335 endif() 323 336 324 337 if (COMPONENT_cli_extra) 338 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "cli_extra") 339 + 325 340 add_subdirectory(external/gnutar/gnutar) 326 341 endif() 327 342 328 343 if (COMPONENT_gui) 344 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "gui") 345 + 329 346 add_subdirectory(external/cocotron) 330 347 331 348 add_subdirectory(CoreAudio) ··· 337 354 endif() 338 355 339 356 if (COMPONENT_python) 357 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "python") 358 + 340 359 add_subdirectory(external/python_modules) 341 360 add_subdirectory(external/python/2.7/Python-2.7.16) 342 361 endif() 343 362 344 363 if (COMPONENT_cli OR COMPONENT_python) 364 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "cli_python_common") 365 + 345 366 add_subdirectory(external/BerkeleyDB) 346 367 add_subdirectory(external/expat) 347 368 endif() 348 369 349 370 if (COMPONENT_gui_frameworks AND COMPONENT_gui_stubs AND COMPONENT_python) 371 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "pyobjc") 372 + 350 373 # TODO: pyobjc should only build individual modules if the respective components are enabled. 351 374 # right now, it's all-or-nothing. 352 375 add_subdirectory(external/pyobjc) 353 376 endif() 354 377 355 378 if (COMPONENT_ruby) 379 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "ruby") 380 + 356 381 add_subdirectory(external/ruby) 357 382 endif() 358 383 359 384 if (COMPONENT_perl) 385 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "perl") 386 + 360 387 add_subdirectory(external/perl) 361 388 endif() 362 389 ··· 395 422 # start core components with C++ 396 423 # 397 424 425 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "core") 426 + 398 427 add_subdirectory(external/libcxxabi) 399 428 add_subdirectory(external/libcxx) 400 429 ··· 406 435 # 407 436 408 437 if (COMPONENT_cli OR COMPONENT_dev_gui_common) 438 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "cli_gui_common") 439 + 409 440 add_subdirectory(external/SmartCardServices) 410 441 add_subdirectory(external/security) 411 442 add_subdirectory(external/SecurityTokend) 412 443 endif() 413 444 414 445 if (COMPONENT_cli) 446 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "cli") 447 + 415 448 add_subdirectory(external/dtrace) 416 449 add_subdirectory(external/libauto) 417 450 endif() 418 451 419 452 if (COMPONENT_dev_gui_common) 453 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "cli_dev_gui_common") 454 + 420 455 add_subdirectory(external/metal) 421 456 endif() 422 457 423 458 if (COMPONENT_jsc OR COMPONENT_webkit) 459 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "jsc_webkit_common") 460 + 424 461 add_subdirectory(external/WTF) 425 462 add_subdirectory(external/bmalloc) 426 463 endif() 427 464 428 465 if (COMPONENT_jsc) 466 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "jsc") 467 + 429 468 add_subdirectory(external/JavaScriptCore) 430 469 endif() 431 470
+18
src/frameworks/CMakeLists.txt
··· 1 1 project(frameworks) 2 2 3 3 if (COMPONENT_system) 4 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "system") 5 + 4 6 # for memberd 5 7 add_subdirectory(DirectoryServices) 6 8 endif() ··· 8 10 # this is mainly for frameworks that are required for Security, 9 11 # since Security is built for both CLI and GUI 10 12 if (COMPONENT_cli OR COMPONENT_dev_gui_common) 13 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "cli_gui_common") 14 + 11 15 add_subdirectory(CoreServices) 12 16 13 17 # these are also stubs, but they're needed for Security ··· 27 31 endif() 28 32 29 33 if (COMPONENT_iokitd OR COMPONENT_dev_gui_common) 34 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "iokitd_cli_dev_gui_common") 35 + 30 36 # this is for iokitd (and Xcode) 31 37 add_subdirectory(IOSurface) 32 38 endif() 33 39 34 40 # this is mainly for anything that Xcode requires to run on the CLI 35 41 if (COMPONENT_dev_gui_common) 42 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "cli_dev_gui_common") 43 + 36 44 add_subdirectory(ApplicationServices) 37 45 add_subdirectory(ColorSync) 38 46 add_subdirectory(Carbon) ··· 44 52 45 53 # same here, except this is for stubs that Xcode needs 46 54 if (COMPONENT_dev_gui_stubs_common) 55 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "cli_dev_gui_stubs_common") 56 + 47 57 add_subdirectory(Accelerate) 48 58 add_subdirectory(AVFoundation) 49 59 add_subdirectory(Contacts) ··· 61 71 62 72 # this is for core GUI frameworks with actual implementations 63 73 if (COMPONENT_gui) 74 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "gui") 75 + 64 76 add_subdirectory(OpenGL) 65 77 add_subdirectory(ImageIO) 66 78 endif() 67 79 68 80 # this is for all the other stubbed frameworks 69 81 if (COMPONENT_gui_stubs) 82 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "gui_stubs") 83 + 70 84 add_subdirectory(AddressBook) 71 85 add_subdirectory(AGL) 72 86 add_subdirectory(AuthenticationServices) ··· 121 135 122 136 #if (COMPONENT_dev_gui_common AND NOT COMPONENT_webkit) 123 137 if (COMPONENT_dev_gui_common OR COMPONENT_webkit) 138 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "cli_dev_gui_common") 139 + 124 140 # stub 125 141 add_subdirectory(WebKit) 126 142 endif() ··· 130 146 # Darling packages; we need to build a package that has these stubs available to be able to install Darling for CLI development 131 147 # without GUI dependencies like X11. 132 148 if ((COMPONENT_cli_dev AND NOT COMPONENT_gui) OR COMPONENT_cli_dev_gui_stubs) 149 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "cli_dev") 150 + 133 151 # if we're building the GUI components (i.e. Cocotron), don't install these stubs 134 152 if (COMPONENT_gui) 135 153 set(NO_INSTALL_ARG NO_INSTALL)
+2
src/native/CMakeLists.txt
··· 3 3 include(wrap_elf) 4 4 5 5 if (COMPONENT_gui) 6 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "gui") 7 + 6 8 wrap_elf(FreeType libfreetype.so) 7 9 wrap_elf(jpeg libjpeg.so) 8 10 wrap_elf(png libpng.so)
+8
src/private-frameworks/CMakeLists.txt
··· 3 3 # this is mainly for frameworks that are required for Security, 4 4 # since Security is built for both CLI and GUI 5 5 if (COMPONENT_cli OR COMPONENT_dev_gui_common) 6 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "cli_gui_common") 7 + 6 8 # these are also stubs, but they're needed for Security 7 9 add_subdirectory(AppleFSCompression) 8 10 add_subdirectory(AppleSystemInfo) ··· 20 22 21 23 # this is mainly for anything that Xcode requires to run on the CLI 22 24 if (COMPONENT_dev_gui_common) 25 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "cli_dev_gui_common") 26 + 23 27 add_subdirectory(DebugSymbols) 24 28 endif() 25 29 26 30 # same here, except this is for stubs that Xcode needs 27 31 if (COMPONENT_dev_gui_stubs_common) 32 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "cli_dev_gui_stubs_common") 33 + 28 34 add_subdirectory(AppleSauce) 29 35 add_subdirectory(AssetCacheServices) 30 36 add_subdirectory(AssistantServices) ··· 54 60 55 61 # this is for all the other stubbed frameworks 56 62 if (COMPONENT_gui_stubs) 63 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "gui_stubs") 64 + 57 65 add_subdirectory(AssertionServices) 58 66 add_subdirectory(Bom) 59 67 add_subdirectory(CoreUtils)
+4
src/tools/CMakeLists.txt
··· 1 1 project(tools) 2 2 3 3 if (COMPONENT_cli) 4 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "cli") 5 + 4 6 add_darling_executable(sw_vers sw_vers.c) 5 7 add_darling_executable(sudo sudo.c) 6 8 add_darling_executable(codesign codesign.c) ··· 15 17 endif() 16 18 17 19 if (COMPONENT_gui) 20 + set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "gui") 21 + 18 22 add_darling_executable(open open.m) 19 23 target_link_libraries(open CoreServices Foundation AppKit) 20 24 install(TARGETS open DESTINATION libexec/darling/usr/bin)