Skip to content

Commit

Permalink
Build OpenLDAP in xcode build
Browse files Browse the repository at this point in the history
Signed-off-by: Raul Metsma <[email protected]>
  • Loading branch information
metsma committed Feb 12, 2025
1 parent 0496feb commit 2980de4
Show file tree
Hide file tree
Showing 147 changed files with 102 additions and 29,684 deletions.
87 changes: 65 additions & 22 deletions CryptoLib/CryptoLib.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,13 @@
remoteGlobalIDString = 4E01B4A02AEFDC4500941723;
remoteInfo = cdoc;
};
4ED24ECD2D4F7A3900855FC3 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 39231FA120AB1C6C00E1E2B4 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 4ED24EC72D4F795E00855FC3;
remoteInfo = openldap;
};
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
Expand Down Expand Up @@ -73,6 +80,7 @@
4E01B4A62AEFDD3B00941723 /* build-cdoc.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = "build-cdoc.sh"; sourceTree = "<group>"; };
4E3681D72D40EAAD00D76DAB /* OpenLdap.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenLdap.swift; sourceTree = "<group>"; };
4E3681DA2D40EAE800D76DAB /* MoppLdapConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MoppLdapConfiguration.swift; sourceTree = "<group>"; };
4ED24ECB2D4F799800855FC3 /* build-openldap.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = "build-openldap.sh"; sourceTree = "<group>"; };
DFA40D2E2ADF635F003EF945 /* 3513523f.0 */ = {isa = PBXFileReference; lastKnownFileType = text; path = 3513523f.0; sourceTree = "<group>"; };
DFC7CA442AE010C9009D85FF /* 9f4c149e.0 */ = {isa = PBXFileReference; lastKnownFileType = text; path = 9f4c149e.0; sourceTree = "<group>"; };
/* End PBXFileReference section */
Expand Down Expand Up @@ -133,6 +141,7 @@
39266A5E20CFDCB9002E3F23 /* CdocInfo.m */,
39266A6020CFDCDF002E3F23 /* CdocInfo.h */,
4E01B4A62AEFDD3B00941723 /* build-cdoc.sh */,
4ED24ECB2D4F799800855FC3 /* build-openldap.sh */,
);
path = CryptoLib;
sourceTree = "<group>";
Expand Down Expand Up @@ -203,6 +212,20 @@
passBuildSettingsInEnvironment = 1;
productName = cdoc;
};
4ED24EC72D4F795E00855FC3 /* openldap */ = {
isa = PBXLegacyTarget;
buildArgumentsString = "CryptoLib/build-openldap.sh $(ACTION)";
buildConfigurationList = 4ED24EC82D4F795E00855FC3 /* Build configuration list for PBXLegacyTarget "openldap" */;
buildPhases = (
);
buildToolPath = /bin/sh;
buildWorkingDirectory = "$(SRCROOT)";
dependencies = (
);
name = openldap;
passBuildSettingsInEnvironment = 1;
productName = cdoc;
};
/* End PBXLegacyTarget section */

/* Begin PBXNativeTarget section */
Expand All @@ -218,6 +241,7 @@
buildRules = (
);
dependencies = (
4ED24ECE2D4F7A3900855FC3 /* PBXTargetDependency */,
4E01B4A52AEFDD0B00941723 /* PBXTargetDependency */,
);
name = CryptoLib;
Expand Down Expand Up @@ -261,6 +285,7 @@
targets = (
39231FA920AB1C6C00E1E2B4 /* CryptoLib */,
4E01B4A02AEFDC4500941723 /* cdoc */,
4ED24EC72D4F795E00855FC3 /* openldap */,
);
};
/* End PBXProject section */
Expand Down Expand Up @@ -305,6 +330,11 @@
target = 4E01B4A02AEFDC4500941723 /* cdoc */;
targetProxy = 4E01B4A42AEFDD0B00941723 /* PBXContainerItemProxy */;
};
4ED24ECE2D4F7A3900855FC3 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 4ED24EC72D4F795E00855FC3 /* openldap */;
targetProxy = 4ED24ECD2D4F7A3900855FC3 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */

/* Begin XCBuildConfiguration section */
Expand Down Expand Up @@ -341,7 +371,6 @@
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = dwarf;
Expand Down Expand Up @@ -399,7 +428,6 @@
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1;
ENABLE_MODULE_VERIFIER = NO;
Expand All @@ -425,35 +453,31 @@
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_IDENTITY = "";
CODE_SIGN_STYLE = Manual;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = "";
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = "$(TARGET_BUILD_DIR)";
GENERATE_INFOPLIST_FILE = YES;
HEADER_SEARCH_PATHS = "$(LDAP_PATH)/include";
HEADER_SEARCH_PATHS = "$(TARGET_BUILD_DIR)/openldap/include";
INFOPLIST_FILE = CryptoLib/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LDAP_PATH = "$(PROJECT_DIR)/CryptoLib/openldap/OPENLDAP.iphoneos";
"LDAP_PATH[sdk=iphonesimulator*]" = "$(PROJECT_DIR)/CryptoLib/openldap/OPENLDAP.iphonesimulator";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
LIBRARY_SEARCH_PATHS = "$(LDAP_PATH)/libraries";
LIBRARY_SEARCH_PATHS = (
"$(TARGET_BUILD_DIR)/openldap/lib",
"$(PROJECT_DIR)/../MoppLib/MoppLib/libdigidocpp/libdigidocpp.$(PLATFORM_NAME)/lib",
);
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = ee.ria.digidoc.CryptoLib;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
SUPPORTS_MACCATALYST = NO;
SWIFT_INCLUDE_PATHS = "$(LDAP_PATH)/include";
SWIFT_INCLUDE_PATHS = "$(TARGET_BUILD_DIR)/openldap/include";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
Expand All @@ -464,35 +488,31 @@
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_IDENTITY = "";
CODE_SIGN_STYLE = Manual;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = "";
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = "$(TARGET_BUILD_DIR)";
GENERATE_INFOPLIST_FILE = YES;
HEADER_SEARCH_PATHS = "$(LDAP_PATH)/include";
HEADER_SEARCH_PATHS = "$(TARGET_BUILD_DIR)/openldap/include";
INFOPLIST_FILE = CryptoLib/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LDAP_PATH = "$(PROJECT_DIR)/CryptoLib/openldap/OPENLDAP.iphoneos";
"LDAP_PATH[sdk=iphonesimulator*]" = "$(PROJECT_DIR)/CryptoLib/openldap/OPENLDAP.iphonesimulator";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
LIBRARY_SEARCH_PATHS = "$(LDAP_PATH)/libraries";
LIBRARY_SEARCH_PATHS = (
"$(TARGET_BUILD_DIR)/openldap/lib",
"$(PROJECT_DIR)/../MoppLib/MoppLib/libdigidocpp/libdigidocpp.$(PLATFORM_NAME)/lib",
);
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = ee.ria.digidoc.CryptoLib;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
SUPPORTS_MACCATALYST = NO;
SWIFT_INCLUDE_PATHS = "$(LDAP_PATH)/include";
SWIFT_INCLUDE_PATHS = "$(TARGET_BUILD_DIR)/openldap/include";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
Expand All @@ -512,6 +532,20 @@
};
name = Release;
};
4ED24EC92D4F795E00855FC3 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
};
4ED24ECA2D4F795E00855FC3 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
Expand Down Expand Up @@ -542,6 +576,15 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
4ED24EC82D4F795E00855FC3 /* Build configuration list for PBXLegacyTarget "openldap" */ = {
isa = XCConfigurationList;
buildConfigurations = (
4ED24EC92D4F795E00855FC3 /* Debug */,
4ED24ECA2D4F795E00855FC3 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */

/* Begin XCRemoteSwiftPackageReference section */
Expand Down
4 changes: 2 additions & 2 deletions CryptoLib/CryptoLib/build-cdoc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ cmake \
-DCMAKE_OSX_DEPLOYMENT_TARGET=${IPHONEOS_DEPLOYMENT_TARGET} \
-DBUILD_SHARED_LIBS=YES \
-DOPENSSL_ROOT_DIR=${PROJECT_DIR}/../MoppLib/MoppLib/libdigidocpp/libdigidocpp.${PLATFORM_NAME} \
-DSWIG_DIR=NOTFOUND \
-DDOXYGEN_EXECUTABLE=NOTFOUND \
-DCMAKE_DISABLE_FIND_PACKAGE_SWIG=YES \
-DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=YES \
-S ${SOURCE_DIR} -B ${TARGET_TEMP_DIR}
cmake --build ${TARGET_TEMP_DIR}
cmake --install ${TARGET_TEMP_DIR}
35 changes: 35 additions & 0 deletions CryptoLib/CryptoLib/build-openldap.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
: ${OPENLDAP:=openldap-2.6.9}
: ${IPHONEOS_DEPLOYMENT_TARGET:="13.0"}
: ${ARCHS:="arm64"}
: ${PREFIX=${BUILT_PRODUCTS_DIR}/openldap}
: ${PLATFORM_NAME:="iphoneos"}
SYSROOT=$(xcrun -sdk ${PLATFORM_NAME} --show-sdk-path)
OPENSSL_DIR=${PROJECT_DIR}/../MoppLib/MoppLib/libdigidocpp/libdigidocpp.${PLATFORM_NAME}
SOURCE_DIR=${DERIVED_SOURCES_DIR}
export IPHONEOS_DEPLOYMENT_TARGET
export CFLAGS="-arch ${ARCHS// / -arch } -isysroot ${SYSROOT}"
export CXXFLAGS="${CFLAGS}"
export CPPFLAGS="${CFLAGS} -I${OPENSSL_DIR}/include"
export LDFLAGS="-L${OPENSSL_DIR}/lib"

mkdir -p ${SOURCE_DIR}
cd ${SOURCE_DIR}
if [ ! -f ${OPENLDAP}.tgz ]; then
curl -O -L http://mirror.eu.oneandone.net/software/openldap/openldap-release/${OPENLDAP}.tgz
fi
if [ ! -d ${OPENLDAP} ]; then
tar xf ${OPENLDAP}.tgz
cd ${OPENLDAP}
sed -ie 's! clients servers tests doc!!' Makefile.in
cd ${TARGET_TEMP_DIR}
echo ${SOURCE_DIR}/${OPENLDAP}/configure
${SOURCE_DIR}/${OPENLDAP}/configure --host=arm-apple-darwin \
--prefix=${PREFIX} --enable-static --disable-shared --disable-syslog --disable-local \
--disable-slapd --disable-cleartext --disable-mdb --disable-relay --disable-syncprov \
--without-cyrus-sasl --without-systemd --without-fetch --without-threads --with-tls=openssl --without-argon2 \
ac_cv_func_memcmp_working=yes lt_cv_apple_cc_single_mod=yes || cat config.log
else
cd ${TARGET_TEMP_DIR}
fi
make install
cp ${PROJECT_DIR}/CryptoLib/module.modulemap ${PREFIX}/include
File renamed without changes.
85 changes: 0 additions & 85 deletions CryptoLib/CryptoLib/openldap/OpenLDAP.iphoneos/include/Makefile.in

This file was deleted.

43 changes: 0 additions & 43 deletions CryptoLib/CryptoLib/openldap/OpenLDAP.iphoneos/include/ac/alloca.h

This file was deleted.

Loading

0 comments on commit 2980de4

Please sign in to comment.