[IOT-1270] Fix building with SECURED=0 for Windows
authorDan Mihai <Daniel.Mihai@microsoft.com>
Thu, 8 Sep 2016 01:26:53 +0000 (18:26 -0700)
committerDave Thaler <dthaler@microsoft.com>
Thu, 8 Sep 2016 20:23:44 +0000 (20:23 +0000)
Don't try to link or export security-related APIs when SECURED=0.

Also, fix scons warning related to sqlite, in security/provisioning.

Change-Id: I61ddab0aeecdc917427bcc5051fb6be960b4b63f
Signed-off-by: Dan Mihai <Daniel.Mihai@microsoft.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/11533
Reviewed-by: Kevin Kane <kkane@microsoft.com>
Reviewed-by: David Antler <david.a.antler@intel.com>
Reviewed-by: Soemin Tjong <stjong@microsoft.com>
Reviewed-by: Dave Thaler <dthaler@microsoft.com>
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
resource/csdk/SConscript
resource/csdk/octbstack_product.def
resource/csdk/octbstack_product_secured.def [new file with mode: 0644]
resource/csdk/security/provisioning/SConscript

index a9d6c0d..a1747ed 100644 (file)
@@ -102,15 +102,19 @@ if target_os in ['android', 'linux', 'tizen', 'msys_nt', 'windows']:
                        liboctbstack_env.AppendUnique(LIBS = ['ra_xmpp'])
 
 if target_os in ['windows', 'msys_nt']:
-       # octbstack.dll is exporting ocpmapi APIs on Windows - there is no ocpmapi.dll.
-       liboctbstack_env.PrependUnique(LIBS = ['ocpmapi'])
-
        # octbstack.def specifies the list of functions exported by octbstack.dll.
        liboctbstack_env.Replace(WINDOWS_INSERT_DEF = ['1'])
        if env.get('TEST') == '1':
-               liboctbstack_env.Textfile(target = 'octbstack.def', source = [File('octbstack_product.def'), File('octbstack_test.def')])
+               liboctbstack_env.Textfile(target = 'octbstack_not_secured.def', source = [File('octbstack_product.def'), File('octbstack_test.def')])
+       else:
+               liboctbstack_env.Textfile(target = 'octbstack_not_secured.def', source = [File('octbstack_product.def')])
+
+       if env.get('SECURED') == '1':
+               # octbstack.dll is exporting ocpmapi APIs on Windows - there is no ocpmapi.dll.
+               liboctbstack_env.PrependUnique(LIBS = ['ocpmapi'])
+               liboctbstack_env.Textfile(target = 'octbstack.def', source = [File('octbstack_not_secured.def'), File('octbstack_product_secured.def')])
        else:
-               liboctbstack_env.Textfile(target = 'octbstack.def', source = [File('octbstack_product.def')])
+               liboctbstack_env.Textfile(target = 'octbstack.def', source = [File('octbstack_not_secured.def')])
 
        liboctbstack_env.AppendUnique(LIBS = ['ws2_32', 'advapi32', 'iphlpapi'])
 else:
index 47b95d9..659a020 100644 (file)
@@ -28,14 +28,6 @@ cJSON_GetArrayItem
 calcDimTotal
 ConvertStrToUuid
 convertTriggerEnumToString
-CreateJustWorksOwnerTransferPayload
-CreateJustWorksSelectOxmPayload
-CreatePinBasedSelectOxmPayload
-CreatePinBasedOwnerTransferPayload
-CreateSecureSessionJustWorksCallback
-CreateSecureSessionRandomPinCallback
-InputPinCodeCallback
-LoadSecretJustWorksCallback
 
 OCBindResource
 OCBindResourceHandler
@@ -45,24 +37,13 @@ OCBindResourceTypeToResource
 OCCancel
 OCCreateOCStringLL
 OCCreateResource
-OCDeleteACLList
-OCDeleteDiscoveredDevices
-OCDeletePdAclList
 OCDeleteResource
-OCDeleteUuidList
 OCDiscoverDirectPairingDevices
-OCDiscoverUnownedDevices
-OCDiscoverOwnedDevices
 OCDoDirectPairing
-OCDoOwnershipTransfer
 OCDoResource
 OCDoResponse
 OCFreeOCStringLL
-OCGetACLResource
-OCGetCredResource
-OCGetDevInfoFromNetwork
 OCGetDirectPairedDevices
-OCGetLinkedStatus
 OCGetNumberOfResources
 OCGetNumberOfResourceInterfaces
 OCGetNumberOfResourceTypes
@@ -77,22 +58,15 @@ OCGetResourceUri
 OCGetServerInstanceIDString
 OCInit
 OCInit1
-OCInitPM
 OCNotifyAllObservers
 OCNotifyListOfObservers
 OCPayloadDestroy
 OCProcess
-OCProvisionACL
-OCProvisionCredentials
-OCProvisionDirectPairing
-OCProvisionPairwiseDevices
 OCRDDelete
 OCRDDeleteWithDeviceId
 OCRDPublish
 OCRDPublishWithDeviceId
 OCRegisterPersistentStorageHandler
-OCRemoveDevice
-OCRemoveDeviceWithUuid
 OCRepPayloadAddInterface
 OCRepPayloadAddResourceType
 OCRepPayloadAppend
@@ -117,18 +91,12 @@ OCRepPayloadSetPropObjectAsOwner
 OCRepPayloadSetPropString
 OCRepPayloadSetStringArrayAsOwner
 OCRepPayloadSetUri
-OCResetDevice
 OCResourcePayloadAddStringLL
 OCSecurityPayloadCreate
 OCSetDefaultDeviceEntityHandler
 OCSetDeviceInfo
-OCSetOwnerTransferCallbackData
 OCSetPlatformInfo
 OCStartPresence
 OCStop
 OCStopPresence
 OCUnBindResource
-OCUnlinkDevices
-
-SetGeneratePinCB
-SetInputPinCB
diff --git a/resource/csdk/octbstack_product_secured.def b/resource/csdk/octbstack_product_secured.def
new file mode 100644 (file)
index 0000000..2960f4f
--- /dev/null
@@ -0,0 +1,36 @@
+; Windows octbstack.dll exports that are required for both products and tests,
+; but only when building with SECURED=1.
+
+CreateJustWorksOwnerTransferPayload
+CreateJustWorksSelectOxmPayload
+CreatePinBasedSelectOxmPayload
+CreatePinBasedOwnerTransferPayload
+CreateSecureSessionJustWorksCallback
+CreateSecureSessionRandomPinCallback
+InputPinCodeCallback
+LoadSecretJustWorksCallback
+
+OCDeleteACLList
+OCDeleteDiscoveredDevices
+OCDeletePdAclList
+OCDeleteUuidList
+OCDiscoverOwnedDevices
+OCDiscoverUnownedDevices
+OCDoOwnershipTransfer
+OCGetACLResource
+OCGetCredResource
+OCGetDevInfoFromNetwork
+OCGetLinkedStatus
+OCInitPM
+OCProvisionACL
+OCProvisionCredentials
+OCProvisionDirectPairing
+OCProvisionPairwiseDevices
+OCRemoveDevice
+OCRemoveDeviceWithUuid
+OCResetDevice
+OCSetOwnerTransferCallbackData
+OCUnlinkDevices
+
+SetGeneratePinCB
+SetInputPinCB
index 7587370..2958f9e 100644 (file)
@@ -54,7 +54,7 @@ provisioning_env.AppendUnique(CPPPATH = [
                'ck_manager/include'
                ])
 
-if target_os not in ['tizen']:
+if target_os not in ['tizen', 'windows', 'msys_nt']:
        provisioning_env.AppendUnique(CPPPATH = ['../../../../extlibs/sqlite3'])
 
 provisioning_env.AppendUnique(CPPDEFINES= ['__WITH_DTLS__'])
@@ -103,7 +103,7 @@ provisioning_src = [
        'src/oxmjustworks.c',
        'src/oxmrandompin.c' ]
 
-if target_os != 'tizen':
+if target_os not in ['tizen', 'windows', 'msys_nt']:
        provisioning_src = provisioning_src + [root_dir+'/extlibs/sqlite3/sqlite3.c' ]
 
 if target_os in ['windows', 'msys_nt']: