Fix darwin/ios build issues
authorCharlie Lenahan <charlie.lenahan@intel.com>
Wed, 6 May 2015 18:49:57 +0000 (14:49 -0400)
committerErich Keane <erich.keane@intel.com>
Thu, 21 May 2015 18:00:28 +0000 (18:00 +0000)
With these changes enables the LF osx build machine
to build and verify

Change-Id: I3b93558b94bd1a9c5e5daaa62de3953ce51bed97
Signed-off-by: Charlie Lenahan <charlie.lenahan@intel.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/915
Reviewed-by: Erich Keane <erich.keane@intel.com>
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
build_common/darwin/SConscript
extlibs/gtest/SConscript
resource/SConscript
resource/csdk/SConscript
resource/csdk/connectivity/SConscript
resource/csdk/connectivity/src/SConscript
resource/csdk/connectivity/src/ip_adapter/SConscript
service/SConscript
tools/darwin/build-ios.sh
tools/darwin/mkfwk_osx.sh

index 2b0386a..4d99761 100644 (file)
@@ -4,9 +4,16 @@
 ##
 import os
 import platform
+import commands
 
 Import('env')
 
+target_arch = env.get('TARGET_ARCH')
+target_os = env.get('TARGET_OS')
+
+tc_path=commands.getoutput('xcode-select -p')
+
+
 # SYS_VERSION build option
 help_vars = Variables()
 help_vars.Add('SYS_VERSION', 'MAC OS X version / IOS version', os.environ.get('SYS_VERSION'))
@@ -29,8 +36,6 @@ if sys_version is None:
 '''
        Exit(1)
 
-target_arch = env.get('TARGET_ARCH')
-target_os = env.get('TARGET_OS')
 # Set release/debug flags
 if env.get('RELEASE'):
        env.AppendUnique(CCFLAGS = ['-Os'])
@@ -40,12 +45,12 @@ else:
        env.AppendUnique(LINKFLAGS = ['-g'])
 
 if target_os == 'darwin':
-       sys_root = '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX' + sys_version + '.sdk/'
+       sys_root = tc_path + '/Platforms/MacOSX.platform/Developer/SDKs/MacOSX' + sys_version + '.sdk/'
 else:
        if target_arch in ['i386', 'x86_64']:
-               sys_root = '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator' + sys_version + '.sdk/'
+               sys_root = tc_path + '/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator' + sys_version + '.sdk/'
        else:
-               sys_root = '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS' + sys_version + '.sdk/'
+               sys_root = tc_path + '/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS' + sys_version + '.sdk/'
 
 # Set arch flags
 env.AppendUnique(CCFLAGS = ['-arch', target_arch, '-isysroot', sys_root])
index 396e4f3..4dfa7ea 100644 (file)
@@ -37,29 +37,30 @@ if target_os == 'darwin':
                gtest_lib_dir = gtest_dir + '/lib'
                gtest_dotlib_dir = gtest_lib_dir + '/.libs'
 
-               if not os.path.exists(gtest_lib_dir):
-                       print 'Create a directory'
-                       os.mkdir(gtest_lib_dir)
+        if not os.path.exists(gtest_lib_dir):
+#                      print 'Create a directory'
+#                      os.mkdir(gtest_lib_dir)
 
-                       print 'Change to a directory'
-                       os.chdir(gtest_lib_dir)
 
                        print 'Invoke cmake command to generate appropriate make files'
-                       env.Configure(gtest_lib_dir, 'cmake -G"Unix Makefiles" ..')
+                       env.Configure(gtest_dir, './configure')
 
                        # Run make on gtest
                        print 'Making google unit test'
-                       env.Configure(gtest_lib_dir, 'make')
+                       env.Configure(gtest_dir, 'make')
 
-                       print 'Create a directory'
-                       os.mkdir(gtest_dotlib_dir)
+#                      print 'Create a directory'
+#                      os.mkdir(gtest_dotlib_dir)
 
                        print 'Change to a directory'
                        os.chdir(gtest_dotlib_dir)
 
+##                     print 'Change to a directory'
+#                      os.chdir(gtest_lib_dir)
+
                        print 'Create hard links pointing to gtest libraries'
-                       os.link('../' + 'libgtest.a', 'libgtest.a')
-                       os.link('../' + 'libgtest_main.a', 'libgtest_main.a')
+                       os.link('libgtest.a', gtest_lib_dir + 'libgtest.a')
+                       os.link('libgtest_main.a', gtest_lib_dir +  'libgtest_main.a')
                        print 'Create hard links pointing to gtest libraries - DONE'
 
 
index 9f96e77..95a2468 100644 (file)
@@ -42,14 +42,14 @@ SConscript('csdk/connectivity/SConscript')
 # Build liboctbstack
 SConscript('csdk/SConscript')
 
-if target_os not in ['arduino','darwin']:
+if target_os not in ['arduino','darwin','ios']:
        # Build liboc_logger
        SConscript('oc_logger/SConscript')
 
        # Build liboc
        SConscript('src/SConscript')
 
-if target_os not in ['arduino','darwin', 'android']:
+if target_os not in ['arduino','darwin','ios','android']:
        # Build examples
        SConscript('examples/SConscript')
 
@@ -64,7 +64,8 @@ if target_os == 'linux':
        SConscript('unit_tests.scons')
 
 elif target_os == 'darwin':
-       # Build linux samples for now.
+       env.Command('../../out/darwin/iotivity-csdk.framework',None,src_dir + '/tools/darwin/mkfwk_osx.sh')
+       # Build linux samples for now
        SConscript('csdk/stack/samples/linux/SimpleClientServer/SConscript')
 
        # Build C stack's unit tests.
index 82ed700..63e6462 100644 (file)
@@ -78,6 +78,7 @@ if target_os == 'arduino':
 elif target_os not in ['darwin','ios']:
        liboctbstack_env.AppendUnique(CFLAGS = ['-fPIC'])
 if target_os in ['darwin', 'ios']:
+       env.AppendUnique(CPPDEFINES = ['_DARWIN_C_SOURCE'])
        liboctbstack_env.AppendUnique(CPPDEFINES = ['_DARWIN_C_SOURCE'])
        liboctbstack_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
 if target_os not in ['arduino']:
index acfbac7..bec1000 100644 (file)
@@ -25,7 +25,7 @@ if 'ALL' in transport:
                env.AppendUnique(CPPDEFINES = ['IP_ADAPTER','NO_EDR_ADAPTER','NO_LE_ADAPTER'])
        elif target_os == 'tizen':
                env.AppendUnique(CPPDEFINES = ['IP_ADAPTER','EDR_ADAPTER','LE_ADAPTER'])
-       elif target_os == 'darwin':
+       elif target_os in['darwin','ios']:
                env.AppendUnique(CPPDEFINES = ['IP_ADAPTER','NO_EDR_ADAPTER','NO_LE_ADAPTER'])
        else:
                env.AppendUnique(CPPDEFINES = ['IP_ADAPTER','EDR_ADAPTER','LE_ADAPTER'])
index 45db09b..1775891 100644 (file)
@@ -30,7 +30,7 @@ env.AppendUnique(CPPPATH = [root_dir + '/common/inc/'])
 if ca_os not in ['arduino', 'windows', 'winrt']:
        env.AppendUnique(CPPDEFINES = ['WITH_POSIX'])
 
-if ca_os in ['darwin']:
+if ca_os in ['darwin','ios']:
        env.AppendUnique(CPPDEFINES = ['_DARWIN_C_SOURCE'])
 
 #Getting common source files
index 2320380..f000980 100644 (file)
@@ -23,7 +23,7 @@ else:
       env.AppendUnique(CA_SRC=[src_dir+'caipserver.c'])
 
 #Source files to build in Linux platform
-if target_os == 'linux':
+if target_os in ['linux','darwin','ios']:
        env.AppendUnique(CA_SRC=[src_dir+'linux/caipnwmonitor.c'])
 
 if target_os == 'tizen':
index d0b0b0a..b2a827e 100644 (file)
@@ -26,7 +26,7 @@ Import('env')
 
 target_os = env.get('TARGET_OS')
 
-if target_os not in ['arduino','darwin']:
+if target_os not in ['arduino','darwin','ios']:
        # Build things manager project
        SConscript('things-manager/SConscript')
 
index edde6fe..1a4ee9e 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/bash
 
 # change this to what version of Xcode you have installed
-SDKVER=8.2
+SDKVER=8.3
 
 scons TARGET_OS=ios TARGET_ARCH=armv7 SYS_VERSION=$SDKVER RELEASE=false
 scons TARGET_OS=ios TARGET_ARCH=armv7s SYS_VERSION=$SDKVER RELEASE=false
index f0ede46..e5e9d35 100755 (executable)
@@ -81,7 +81,6 @@ find $OUTDIR/objs -name "*.o" | xargs rm
 
 echo "Framework: Copying includes..."
 cp -r  resource/csdk/stack/include/*.h  $FRAMEWORK_BUNDLE/Headers
-cp -r  resource/csdk/ocsocket/include/*.h  $FRAMEWORK_BUNDLE/Headers
 cp -r  resource/csdk/ocrandom/include/*.h  $FRAMEWORK_BUNDLE/Headers
 cp -r  resource/csdk/ocmalloc/include/*.h  $FRAMEWORK_BUNDLE/Headers