this repo has no description
1
fork

Configure Feed

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

Create add_separated_framework

This function is to be used when a slice of a framework
needs to be built with different flags.

+71
+71
cmake/darling_framework.cmake
··· 65 65 endif (FRAMEWORK_CURRENT_VERSION) 66 66 endfunction(add_framework) 67 67 68 + function(add_separated_framework name) 69 + cmake_parse_arguments(FRAMEWORK "CURRENT_VERSION;PRIVATE" "VERSION;LINK_FLAGS" "SOURCES;ARCHS;DEPENDENCIES;CIRCULAR_DEPENDENCIES" ${ARGN}) 70 + if (FRAMEWORK_CURRENT_VERSION) 71 + set(my_name "${name}") 72 + else (FRAMEWORK_CURRENT_VERSION) 73 + set(my_name "${name}_${FRAMEWORK_VERSION}") 74 + endif (FRAMEWORK_CURRENT_VERSION) 68 75 76 + if (FRAMEWORK_PRIVATE) 77 + set(dir_name "PrivateFrameworks") 78 + else (FRAMEWORK_PRIVATE) 79 + set(dir_name "Frameworks") 80 + endif (FRAMEWORK_PRIVATE) 81 + 82 + set(DYLIB_INSTALL_NAME "/System/Library/${dir_name}/${name}.framework/Versions/${FRAMEWORK_VERSION}/${name}") 83 + 84 + 85 + add_darling_library(${my_name}_i386 SHARED ${FRAMEWORK_SOURCES}) 86 + add_darling_library(${my_name}_x86_64 SHARED ${FRAMEWORK_SOURCES}) 87 + 88 + set_target_properties(${my_name}_i386 PROPERTIES 89 + OUTPUT_NAME "${name}_i386" 90 + SUFFIX "" 91 + PREFIX "") 92 + set_target_properties(${my_name}_x86_64 PROPERTIES 93 + OUTPUT_NAME "${name}_x86_64" 94 + SUFFIX "" 95 + PREFIX "") 96 + set_property(TARGET ${my_name}_i386 APPEND_STRING PROPERTY 97 + COMPILE_FLAGS " -arch i386") 98 + set_property(TARGET ${my_name}_x86_64 APPEND_STRING PROPERTY 99 + COMPILE_FLAGS " -arch x86_64") 100 + set_property(TARGET ${my_name}_i386 APPEND_STRING PROPERTY 101 + LINK_FLAGS " -arch i386") 102 + set_property(TARGET ${my_name}_x86_64 APPEND_STRING PROPERTY 103 + LINK_FLAGS " -arch x86_64") 104 + 105 + if (NOT FRAMEWORK_CURRENT_VERSION) 106 + add_library("${my_name}_i386" ALIAS "${name}_i386") 107 + add_library("${my_name}_x86_64" ALIAS "${name}_x86_64") 108 + endif (NOT FRAMEWORK_CURRENT_VERSION) 109 + 110 + if (FRAMEWORK_DEPENDENCIES) 111 + target_link_libraries(${my_name}_i386 PRIVATE ${FRAMEWORK_DEPENDENCIES}) 112 + target_link_libraries(${my_name}_x86_64 PRIVATE ${FRAMEWORK_DEPENDENCIES}) 113 + endif (FRAMEWORK_DEPENDENCIES) 114 + 115 + if (FRAMEWORK_LINK_FLAGS) 116 + set_property(TARGET ${my_name}_i386 APPEND_STRING PROPERTY LINK_FLAGS " ${FRAMEWORK_LINK_FLAGS}") 117 + set_property(TARGET ${my_name}_x86_64 APPEND_STRING PROPERTY LINK_FLAGS " ${FRAMEWORK_LINK_FLAGS}") 118 + endif (FRAMEWORK_LINK_FLAGS) 119 + 120 + add_custom_target(${my_name} 121 + COMMAND ${CMAKE_BINARY_DIR}/src/external/cctools-port/cctools/misc/lipo 122 + -arch i386 $<TARGET_FILE:${my_name}_i386> 123 + -arch x86_64 $<TARGET_FILE:${my_name}_x86_64> 124 + -create 125 + -output 126 + ${CMAKE_CURRENT_BINARY_DIR}/${my_name} 127 + 128 + BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/${my_name} 129 + 130 + DEPENDS ${my_name}_i386 ${my_name}_x86_64 lipo 131 + ) 132 + 133 + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${my_name} DESTINATION "libexec/darling/System/Library/${dir_name}/${name}.framework/Versions/${FRAMEWORK_VERSION}/") 134 + 135 + if (FRAMEWORK_CURRENT_VERSION) 136 + InstallSymlink(${FRAMEWORK_VERSION} "${CMAKE_INSTALL_PREFIX}/libexec/darling/System/Library/${dir_name}/${name}.framework/Versions/Current") 137 + InstallSymlink("Versions/Current/${name}" "${CMAKE_INSTALL_PREFIX}/libexec/darling/System/Library/${dir_name}/${name}.framework/${name}") 138 + endif (FRAMEWORK_CURRENT_VERSION) 139 + endfunction(add_separated_framework)