Remove cJSON library include from resource
authorHabib Virji <habib.virji@samsung.com>
Wed, 23 Nov 2016 12:16:31 +0000 (12:16 +0000)
committerDan Mihai <Daniel.Mihai@microsoft.com>
Wed, 30 Nov 2016 17:18:19 +0000 (17:18 +0000)
Removing this reduces ocbtstack from 180kb to 168kb in size.

cJSON is not used anymore in the resource, except in json2cbor tool in
the security module.

cJSON is used in coap-http and simulator and scripts has been updated
to include and build cjson. It was included mostly in sconscript.

pmutility had helper function which was not used anywhere.
smutility, psinterface, oicgroup all had function calling cjson but the
function was not used anywhere in the code. Except psinterface and
smutility there are no public API with cjson. The public API are not
called by either sample or test code. The API are obsolete and using them
will not yield any result and can crash the platform.

Change-Id: Ifbf3384536394a26cd6b168dcd15285ef9ce08a7
Signed-off-by: Habib Virji <habib.virji@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/14685
Reviewed-by: Kevin Kane <kkane@microsoft.com>
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Mike Fenelon <mike.fenelon@microsoft.com>
Reviewed-by: Dan Mihai <Daniel.Mihai@microsoft.com>
35 files changed:
resource/csdk/SConscript
resource/csdk/connectivity/test/SConscript
resource/csdk/octbstack_product.def
resource/csdk/security/SConscript
resource/csdk/security/include/internal/psinterface.h
resource/csdk/security/include/srmutility.h
resource/csdk/security/provisioning/SConscript
resource/csdk/security/provisioning/sample/SConscript
resource/csdk/security/provisioning/src/multipleownershiptransfermanager.c
resource/csdk/security/provisioning/src/ownershiptransfermanager.c
resource/csdk/security/provisioning/src/pmutility.c
resource/csdk/security/provisioning/src/secureresourceprovider.c
resource/csdk/security/provisioning/unittest/SConscript
resource/csdk/security/src/directpairing.c
resource/csdk/security/src/dpairingresource.c
resource/csdk/security/src/pconfresource.c
resource/csdk/security/src/srmutility.c
resource/csdk/security/tool/SConscript
resource/csdk/security/unittest/SConscript
resource/csdk/stack/samples/linux/SimpleClientServer/SConscript
resource/csdk/stack/samples/linux/SimpleClientServer/ocserverslow.cpp
resource/csdk/stack/samples/linux/secure/SConscript
resource/csdk/stack/samples/tizen/build/SConscript
resource/csdk/stack/samples/tizen/build/gbsbuild.sh
resource/csdk/stack/samples/tizen/build/packaging/com.oic.ri.spec
resource/csdk/stack/src/occollection.c
resource/csdk/stack/src/ocresource.c
resource/csdk/stack/src/oicgroup.c
resource/csdk/stack/test/SConscript
resource/provisioning/SConscript
resource/provisioning/examples/SConscript
resource/provisioning/unittests/SConscript
service/coap-http-proxy/SConscript
service/coap-http-proxy/samples/SConscript
service/simulator/ramlparser/SConscript

index ffea35f..0c9446a 100644 (file)
@@ -52,7 +52,6 @@ else:
        liboctbstack_env.PrependUnique(CPPPATH = ['connectivity/lib/libcoap-4.1.1/include'])
 
 liboctbstack_env.PrependUnique(CPPPATH = [
-               '../../extlibs/cjson/',
                '../../extlibs/timer/',
                'logger/include',
                'stack/include',
@@ -165,7 +164,6 @@ if 'CLIENT' in rd_mode or 'SERVER' in rd_mode:
 ######################################################################
 OCTBSTACK_SRC = 'stack/src/'
 liboctbstack_src = [
-       '../../extlibs/cjson/cJSON.c',
        '../../extlibs/timer/timer.c',
        OCTBSTACK_SRC + 'ocstack.c',
        OCTBSTACK_SRC + 'ocpayload.c',
index 004f8d5..1e5316c 100644 (file)
@@ -34,7 +34,6 @@ rd_mode = catest_env.get('RD_MODE')
 catest_env.PrependUnique(CPPPATH = [
                 '../../logger/include',
                 '../../stack/include',
-                '../../extlibs/cjson',
                 '../../../oc_logger/include',
                ])
 
index 6251601..bec1594 100644 (file)
@@ -20,11 +20,6 @@ cbor_value_advance
 cbor_value_enter_container
 cbor_value_map_find_value
 
-cJSON_Parse
-cJSON_GetObjectItem
-cJSON_GetArraySize
-cJSON_GetArrayItem
-
 calcDimTotal
 ConvertStrToUuid
 convertTriggerEnumToString
index a515134..c399dda 100644 (file)
@@ -48,7 +48,6 @@ else:
        libocsrm_env.AppendUnique(CPPPATH = ['../connectivity/lib/libcoap-4.1.1/include'])
 
 libocsrm_env.PrependUnique(CPPPATH = [
-               '../../../extlibs/cjson/',
                '../../../extlibs/tinydtls/',
                '../logger/include',
                '../../c_common/ocrandom/include',
index 493690a..15c5e7f 100644 (file)
@@ -21,8 +21,6 @@
 #ifndef IOTVT_SRM_PSI_H
 #define IOTVT_SRM_PSI_H
 
-#include "cJSON.h"
-
 /**
  * Reads the Secure Virtual Database from PS into dynamically allocated
  * memory buffer.
 char * GetSVRDatabase();
 
 /**
- * This method is used by a entity handlers of SVR's to update
- * SVR database.
- *
- * @param rsrcName string denoting the SVR name ("acl", "cred", "pstat" etc).
- * @param jsonObj JSON object containing the SVR contents.
- *
- * @return ::OC_STACK_OK for Success, otherwise some error value
- */
-OCStackResult UpdateSVRDatabase(const char* rsrcName, cJSON* jsonObj);
-
-/**
  * Reads the Secure Virtual Database from PS
  *
  * @note Caller of this method MUST use OCFree() method to release memory
index bcf5ea8..b311b4a 100644 (file)
@@ -22,7 +22,6 @@
 #define IOTVT_SRM_UTILITY_H
 
 #include "ocstack.h"
-#include "cJSON.h"
 #include "securevirtualresourcetypes.h"
 #ifdef __cplusplus
 extern "C"
@@ -92,19 +91,6 @@ void ParseQueryIterInit(const unsigned char * query, OicParseQueryIter_t * parse
 OicParseQueryIter_t * GetNextQuery(OicParseQueryIter_t * parseIter);
 
 /**
- * This method acts as a helper function for JSON unmarshalling by various SVR's.
- *
- * @param jsonRoot point to the root JSON node containing the OicUuid array.
- * @param arrayItem is the name of the JSON OicUuid array item.
- * @param numUuids is the pointer to the number of OicUuid's available in JSON array.
- * @param uuids is the pointer to the array of OicUuid's.
- *
- * @return ::OC_STACK_OK on success, some other value upon failure.
- */
-OCStackResult AddUuidArray(const cJSON* jsonRoot, const char* arrayItem,
-                           size_t *numUuids, OicUuid_t** uuids);
-
-/**
  * Function to getting string of ownership transfer method
  *
  * @prarm oxmType ownership transfer method
index ceb3154..8aab750 100644 (file)
@@ -47,7 +47,6 @@ provisioning_env.AppendUnique(CPPPATH = [
                'include/cloud',
                'include/oxm',
                '../../resource/csdk/security/include',
-               '../../../../extlibs/cjson/',
                '../../../../extlibs/tinydtls/',
                '../../connectivity/inc',
                '../../connectivity/inc/pkix',
@@ -141,4 +140,3 @@ provisioning_env.UserInstallTargetLib(provisioningserver, 'ocpmapi')
 
 if target_os in ['linux', 'msys_nt', 'windows', 'tizen']:
        SConscript('sample/SConscript')
-
index 1ec4546..5f2fe11 100644 (file)
@@ -50,7 +50,6 @@ provisioning_env.AppendUnique(CPPPATH = [
                '../include/cloud',
                '../../include',
                '../../../../../extlibs/tinydtls',
-               '../../../../../extlibs/cjson',
                '../../../../../extlibs/base64',
                '../../../connectivity/inc',
                '../../../connectivity/inc/pkix',
@@ -161,4 +160,3 @@ else:
                                ])
 
 provisioning_env.AppendTarget('samples')
-
index 6a84d27..65bc9db 100644 (file)
@@ -37,7 +37,6 @@
 #include "cacommon.h"
 #include "cainterface.h"
 #include "base64.h"
-#include "cJSON.h"
 #include "global.h"
 
 #include "srmresourcestrings.h"
index 9e7f9ce..8a80358 100644 (file)
@@ -49,7 +49,6 @@
 #include "cacommon.h"
 #include "cainterface.h"
 #include "base64.h"
-#include "cJSON.h"
 #include "global.h"
 #include "utlist.h"
 #include "srmresourcestrings.h"
index bdf08c5..8cd3d0f 100644 (file)
@@ -34,7 +34,6 @@
 #include "oic_string.h"
 #include "oic_time.h"
 #include "logger.h"
-#include "cJSON.h"
 #include "utlist.h"
 #include "ocpayload.h"
 
@@ -403,55 +402,6 @@ OCStackResult PMTimeout(unsigned short waittime, bool waitForStackResponse)
     return res;
 }
 
-/**
- * Extract secure port information from payload of discovery response.
- *
- * @param[in] jsonStr response payload of /oic/res discovery.
- *
- * @return Secure port
- */
-uint16_t GetSecurePortFromJSON(char* jsonStr)
-{
-    // TODO: Modify error handling
-    if (NULL == jsonStr)
-    {
-        return 0;
-    }
-    cJSON *jsonProp = NULL;
-    cJSON *jsonP = NULL;
-    cJSON *jsonPort = NULL;
-
-    cJSON *jsonRoot = cJSON_Parse(jsonStr);
-    if(!jsonRoot)
-    {
-        // TODO: Add error log & return default secure port
-        return 0;
-    }
-
-    jsonProp = cJSON_GetObjectItem(jsonRoot, "prop");
-    if(!jsonProp)
-    {
-        // TODO: Add error log & return default secure port
-        return 0;
-    }
-
-    jsonP = cJSON_GetObjectItem(jsonProp, "p");
-    if(!jsonP)
-    {
-        // TODO: Add error log & return default secure port
-        return 0;
-    }
-
-    jsonPort = cJSON_GetObjectItem(jsonP, "port");
-    if(!jsonPort)
-    {
-        // TODO: Add error log & return default secure port
-        return 0;
-    }
-
-    return (uint16_t)jsonPort->valueint;
-}
-
 bool PMGenerateQuery(bool isSecure,
                      const char* address, uint16_t port,
                      OCConnectivityType connType,
index ba0e514..cd13784 100644 (file)
@@ -37,7 +37,6 @@
 #include "pconfresource.h"
 #include "credentialgenerator.h"
 #include "cainterface.h"
-#include "cJSON.h"
 #include "pmtypes.h"
 #include "pmutility.h"
 #include "provisioningdatabasemanager.h"
index ffe2fc2..cdfdecc 100644 (file)
@@ -53,7 +53,6 @@ sptest_env.PrependUnique(CPPPATH = [
                '../../../../oc_logger/include',
                '../include/oxm',
                '../../../../../extlibs/tinydtls',
-               '../../../../../extlibs/cjson',
                '../../../../../extlibs/base64',
                '../../../connectivity/inc',
                '../../../connectivity/inc/pkix',
@@ -126,4 +125,3 @@ if sptest_env.get('TEST') == '1':
                sptest_env.AppendENVPath('PATH', sptest_env.get('BUILD_DIR'))
                ut = sptest_env.Command ('ut', None, out_dir + '/resource/csdk/security/provisioning/unittest/unittest')
                AlwaysBuild ('ut')
-
index f7b4d14..fd1a9b8 100644 (file)
@@ -38,7 +38,6 @@
 #include "oic_malloc.h"
 #include "oic_string.h"
 #include "logger.h"
-#include "cJSON.h"
 #include "utlist.h"
 #include "ocpayload.h"
 #include "payload_logging.h"
index 81271ab..538bad8 100644 (file)
@@ -25,7 +25,6 @@
 #include "logger.h"
 #include "oic_malloc.h"
 #include "oic_string.h"
-#include "cJSON.h"
 #include "base64.h"
 #include "resourcemanager.h"
 #include "dpairingresource.h"
index ab89e3c..77bdc04 100644 (file)
@@ -25,7 +25,6 @@
 #include "logger.h"
 #include "oic_malloc.h"
 #include "oic_string.h"
-#include "cJSON.h"
 #include "base64.h"
 #include "ocpayload.h"
 #include "ocpayloadcbor.h"
index b3685e2..ce509b3 100644 (file)
@@ -74,48 +74,6 @@ OicParseQueryIter_t * GetNextQuery(OicParseQueryIter_t * parseIter)
     return NULL;
 }
 
-// TODO This functionality is replicated in all SVR's and therefore we need
-// to encapsulate it in a common method. However, this may not be the right
-// file for this method.
-OCStackResult AddUuidArray(const cJSON* jsonRoot, const char* arrayItem,
-                           size_t *numUuids, OicUuid_t** uuids)
-{
-    size_t idxx = 0;
-    cJSON* jsonObj = cJSON_GetObjectItem((cJSON *)jsonRoot, arrayItem);
-    VERIFY_NON_NULL(TAG, jsonObj, ERROR);
-    VERIFY_SUCCESS(TAG, cJSON_Array == jsonObj->type, ERROR);
-
-    *numUuids = (size_t)cJSON_GetArraySize(jsonObj);
-    VERIFY_SUCCESS(TAG, *numUuids > 0, ERROR);
-    *uuids = (OicUuid_t*)OICCalloc(*numUuids, sizeof(OicUuid_t));
-    VERIFY_NON_NULL(TAG, *uuids, ERROR);
-
-    do
-    {
-        unsigned char base64Buff[sizeof(((OicUuid_t*)0)->id)] = {0};
-        uint32_t outLen = 0;
-        B64Result b64Ret = B64_OK;
-
-        cJSON *jsonOwnr = cJSON_GetArrayItem(jsonObj, idxx);
-        VERIFY_NON_NULL(TAG, jsonOwnr, ERROR);
-        VERIFY_SUCCESS(TAG, cJSON_String == jsonOwnr->type, ERROR);
-
-        outLen = 0;
-        b64Ret = b64Decode(jsonOwnr->valuestring, strlen(jsonOwnr->valuestring), base64Buff,
-               sizeof(base64Buff), &outLen);
-
-        VERIFY_SUCCESS(TAG, (b64Ret == B64_OK && outLen <= sizeof((*uuids)[idxx].id)),
-               ERROR);
-        memcpy((*uuids)[idxx].id, base64Buff, outLen);
-    } while ( ++idxx < *numUuids);
-
-    return OC_STACK_OK;
-
-exit:
-    return OC_STACK_ERROR;
-
-}
-
 /**
  * Function to getting string of ownership transfer method
  *
index 46fa324..3de9ad0 100644 (file)
@@ -58,11 +58,13 @@ elif target_os in ['darwin']:
     tools_env.AppendUnique(LIBS = ['coap', 'tinydtls', 'mbedtls', 'mbedx509', 'mbedcrypto',
                                    'octbstack', 'ocsrm', 'connectivity_abstraction'])
 else:
-    tools_env.PrependUnique(LIBS = ['oc', 'octbstack'])
+    tools_env.PrependUnique(LIBS = ['oc', 'octbstack', 'm'])
 
 ######################################################################
 # Source files and Targets
 ######################################################################
-json2cbor = tools_env.Program('json2cbor', ['json2cbor.c'])
+json2cbor_src = ['../../../../extlibs/cjson/cJSON.c',
+                 'json2cbor.c',]
+json2cbor = tools_env.Program('json2cbor', json2cbor_src)
 Alias("json2cbor", [json2cbor])
 env.AppendTarget('json2cbor')
index fd67ede..ddb8ef7 100644 (file)
@@ -50,7 +50,6 @@ srmtest_env.PrependUnique(CPPPATH = [
                '../../stack/include',
                '../../stack/include/internal',
                '../../../oc_logger/include',
-               '../../../../extlibs/cjson/',
                '../provisioning/include',
                '../include'
                ])
@@ -127,7 +126,7 @@ srmtest_env.Alias("install", srmtest_env.Install( unittest_build_dir,
     unittest_src_dir + 'oic_svr_db_prov.dat'))
 srmtest_env.Alias("install", srmtest_env.Install( unittest_build_dir,
     unittest_src_dir + 'oic_svr_db.dat'))
-    
+
 srmtest_env.AppendTarget('test')
 if srmtest_env.get('TEST') == '1':
        if target_os in ['linux', 'windows']:
index e2e7cf8..283108c 100644 (file)
@@ -38,7 +38,6 @@ samples_env.PrependUnique(CPPPATH = [
                '../../../../logger/include',
                '../../../../stack/include',
                '../../../../security/include',
-               '../../../../../../extlibs/cjson',
                '../../../../../../extlibs/boost/boost',
                '../../../../../oc_logger/include',
                ])
@@ -93,5 +92,3 @@ if with_ra:
 Alias("samples", list_of_samples)
 
 samples_env.AppendTarget('samples')
-
-
index 997b789..5e1f34c 100644 (file)
@@ -41,7 +41,6 @@
 #include "oic_malloc.h"
 #include "oic_string.h"
 #include "logger.h"
-#include "cJSON.h"
 #include "ocserverslow.h"
 #include "ocpayload.h"
 #include "payload_logging.h"
@@ -389,4 +388,3 @@ int createLEDResource (char *uri, LEDResource *ledResource, bool resourceState,
 
     return 0;
 }
-
index b271acd..5cabeca 100644 (file)
@@ -28,7 +28,6 @@ samples_env.PrependUnique(CPPPATH = [
                '../../../../logger/include',
                '../../../../stack/include',
                '../../../../security/include',
-               '../../../../../../extlibs/cjson',
                '../../../../../../extlibs/tinydtls',
                '../../../../../oc_logger/include'
                ])
index 8c6ee55..aa9c4ae 100644 (file)
@@ -28,7 +28,6 @@ else:
 env.PrependUnique(CPPPATH = [
                '../../../../logger/include',
                '../../../../stack/include',
-               '../../../../../../extlibs/cjson',
                '../../../../../oc_logger/include'
                ])
 
@@ -47,4 +46,4 @@ if target_os == 'tizen':
        command = "sh resource/csdk/stack/samples/tizen/build/gbsbuild.sh %s %s %s %s %s %s %s %s %s" % (transport, secured, buildsample, release_mode, logging, routing, with_tcp, with_proxy, with_mq)
        print "Created Command is %s" % command
        gbs_script = env.Command('gbs_build', None, command)
-       AlwaysBuild ('gbs_script')
\ No newline at end of file
+       AlwaysBuild ('gbs_script')
index 1af1de6..7fc6c9f 100644 (file)
@@ -52,7 +52,6 @@ mkdir ./tmp/extlibs/
 mkdir ./tmp/packaging
 cp -LR ./extlibs/tinycbor $sourcedir/tmp/extlibs
 cp -Rf ./extlibs/mbedtls $sourcedir/tmp/extlibs
-cp -R ./extlibs/cjson $sourcedir/tmp/extlibs
 cp -R ./extlibs/tinydtls $sourcedir/tmp/extlibs
 cp -R ./extlibs/timer $sourcedir/tmp/extlibs
 cp -R ./extlibs/rapidxml $sourcedir/tmp/extlibs
index 06ad14f..bc12248 100644 (file)
@@ -85,7 +85,6 @@ cp resource/c_common/iotivity_config.h %{DEST_INC_DIR}
 cp resource/c_common/*/include/*.h %{DEST_INC_DIR}
 cp resource/csdk/stack/include/payload_logging.h %{DEST_INC_DIR}
 cp extlibs/tinycbor/tinycbor/src/cbor.h %{DEST_INC_DIR}
-cp extlibs/cjson/cJSON.h %{DEST_INC_DIR}
 cp -rf %{ROOTDIR}/com.oic.ri.pc %{DEST_LIB_DIR}/pkgconfig/
 
 %files
index 4e20bd7..f419678 100755 (executable)
@@ -31,7 +31,6 @@
 #include "ocstackinternal.h"
 #include "ocresourcehandler.h"
 #include "logger.h"
-#include "cJSON.h"
 #include "oic_malloc.h"
 #include "oic_string.h"
 #include "ocpayload.h"
index 7a002e3..814a8b8 100755 (executable)
@@ -44,7 +44,6 @@
 #include "oic_malloc.h"
 #include "oic_string.h"
 #include "logger.h"
-#include "cJSON.h"
 #include "ocpayload.h"
 #include "secureresourcemanager.h"
 #include "cacommon.h"
index 082f277..0f133a5 100755 (executable)
@@ -25,7 +25,6 @@
 #include <string.h>
 
 #include "oicgroup.h"
-#include "cJSON.h"
 #include "cbor.h"
 #include "ocpayload.h"
 #include "oic_malloc.h"
@@ -917,46 +916,6 @@ void ActionSetCD(void *context)
     (void)context;
 }
 
-OCStackResult BuildActionJSON(OCAction* action, unsigned char* bufferPtr,
-        uint16_t *remaining)
-{
-    OCStackResult ret = OC_STACK_ERROR;
-    cJSON *json;
-    cJSON *body;
-
-    char *jsonStr;
-    uint16_t jsonLen;
-
-    OIC_LOG(INFO, TAG, "Entering BuildActionJSON");
-    json = cJSON_CreateObject();
-
-    cJSON_AddItemToObject(json, "rep", body = cJSON_CreateObject());
-
-    OCCapability* pointerCapa = action->head;
-    while (pointerCapa)
-    {
-        cJSON_AddStringToObject(body, pointerCapa->capability,
-                pointerCapa->status);
-        pointerCapa = pointerCapa->next;
-    }
-
-    jsonStr = cJSON_PrintUnformatted(json);
-
-    jsonLen = strlen(jsonStr);
-    if (jsonLen < *remaining)
-    {
-        strncat((char*) bufferPtr, jsonStr, jsonLen);
-        *remaining -= jsonLen;
-        bufferPtr += jsonLen;
-        ret = OC_STACK_OK;
-    }
-
-    cJSON_Delete(json);
-    free(jsonStr);
-
-    return ret;
-}
-
 OCPayload* BuildActionCBOR(OCAction* action)
 {
     OCRepPayload* payload = OCRepPayloadCreate();
index cf836ec..1b4d6a5 100644 (file)
@@ -40,7 +40,6 @@ stacktest_env.PrependUnique(CPPPATH = [
                '../../connectivity/api',
                '../../connectivity/inc/pkix',
                '../../connectivity/external/inc',
-               '../../extlibs/cjson',
                '../../../oc_logger/include',
                ])
 
index bbcb933..499cf9c 100644 (file)
@@ -45,8 +45,7 @@ ocprovision_env.AppendUnique(CPPPATH = [
                '../csdk/security/provisioning/include/oxm',
                '../csdk/security/provisioning/include/internal',
                '../csdk/security/provisioning/include/cloud',
-        '../csdk/connectivity/lib/libcoap-4.1.1/',
-        '../../extlibs/cjson/'
+               '../csdk/connectivity/lib/libcoap-4.1.1/',
                ])
 
 target_os = ocprovision_env.get('TARGET_OS')
index ec21321..7b52c42 100644 (file)
@@ -39,7 +39,6 @@ examples_env = lib_env.Clone()
 examples_env.AppendUnique(CPPPATH = [
         '../../include/',
         '../../csdk/stack/include',
-        '../../../extlibs/cjson',
         '../../csdk/logger/include',
         '../../oc_logger/include',
         '../../csdk/connectivity/api',
@@ -113,4 +112,3 @@ if examples_env.get('WITH_TCP') == True:
 
 Alias("examples", [provisioningclient, clientjson,clientdat])
 examples_env.AppendTarget('examples')
-
index c7a4561..2b53998 100755 (executable)
@@ -49,7 +49,6 @@ provisiontests_env.PrependUnique(CPPPATH = [
                '../../csdk/ocrandom/include',
                '../../csdk/logger/include',
                '../../csdk/connectivity/lib/libcoap-4.1.1/include',
-               '../../../extlibs/cjson/',
                '../../../extlibs/hippomocks-master/HippoMocks',
                '../../../extlibs/hippomocks-master/HippoMocksTest'
                ])
index 32574ac..6f9817c 100644 (file)
@@ -59,7 +59,7 @@ if target_os not in ['windows']:
     local_env.AppendUnique(CXXFLAGS = ['-O2', '-g', '-Wall', '-Wextra'])
 
 if target_os in ['linux', 'tizen']:
-    local_env.AppendUnique(LIBS = ['pthread', 'curl'])
+    local_env.AppendUnique(LIBS = ['pthread', 'curl', 'm'])
 
 if target_os == 'android':
     local_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions'])
@@ -72,6 +72,7 @@ if target_os == 'android':
 ######################################################################
 
 proxy_src = [
+       '../../extlibs/cjson/cJSON.c',
        './src/CoapHttpHandler.c',
        './src/CoapHttpMap.c',
        './src/CoapHttpParser.c',
index 2eb3b6f..c0045fa 100644 (file)
@@ -37,6 +37,9 @@ proxy_sample_app_env.AppendUnique(CPPPATH = ['../include'])
 
 if target_os not in ['windows']:
     proxy_sample_app_env.AppendUnique(CXXFLAGS = ['-O2', '-g', '-Wall', '-Wextra', '-std=c++0x'])
+else:
+    proxy_sample_app_env.PrependUnique(LIBS = ['m'])
+
 proxy_sample_app_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
 proxy_sample_app_env.AppendUnique(RPATH = [env.get('BUILD_DIR')])
 proxy_sample_app_env.PrependUnique(LIBS = ['coap_http_proxy', 'oc', 'octbstack', 'curl', 'connectivity_abstraction'])
index bca7ffe..b7575e3 100755 (executable)
@@ -1,51 +1,51 @@
-#******************************************************************\r
-#\r
-# Copyright 2015 Samsung Electronics All Rights Reserved.\r
-#\r
-#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
-#\r
-# Licensed under the Apache License, Version 2.0 (the "License");\r
-# you may not use this file except in compliance with the License.\r
-# You may obtain a copy of the License at\r
-#\r
-#      http://www.apache.org/licenses/LICENSE-2.0\r
-#\r
-# Unless required by applicable law or agreed to in writing, software\r
-# distributed under the License is distributed on an "AS IS" BASIS,\r
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
-# See the License for the specific language governing permissions and\r
-# limitations under the License.\r
-#\r
-#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
-\r
-import os\r
-Import('env')\r
-lib_env = env.Clone()\r
-SConscript('#service/third_party_libs.scons', 'lib_env')\r
-raml_env = lib_env.Clone()\r
-\r
-######################################################################\r
-# Build flags\r
-######################################################################\r
-raml_env.AppendUnique(CPPPATH = ['../../../extlibs/timer'])\r
-raml_env.AppendUnique(CPPPATH = ['raml/model','raml/jsonSchemaParser','raml', '../../../extlibs/yaml/yaml/src' , '../../../extlibs/yaml/yaml/include'])\r
-raml_env.AppendUnique(CXXFLAGS = ['-std=c++0x', '-Wall', '-pthread'])\r
-raml_env.AppendUnique(CPPDEFINES = ['LINUX'])\r
-\r
-raml_env.Append( RPATH = env.Literal('\\$$ORIGIN'))\r
-\r
-raml_env.AppendUnique(CPPPATH = ['../../../extlibs/cjson/'])\r
-raml_env.PrependUnique(LIBS = ['octbstack', 'YamlParser'])\r
-raml_env.AppendUnique(LIBS = ['pthread'])\r
-\r
-raml_env.AppendUnique(CXXFLAGS = ['-O2', '-g', '-Wall', '-fmessage-length=0', '-std=c++0x'])\r
-\r
-######################################################################\r
-# Source files and Targets\r
-######################################################################\r
-raml_src = [env.Glob('raml/model/*.cpp'), env.Glob('raml/jsonSchemaParser/*.cpp'), env.Glob('raml/*.cpp')]\r
-ramlsdk = raml_env.SharedLibrary('RamlParser', raml_src)\r
-\r
-raml_env.InstallTarget(ramlsdk, 'libRaml')\r
-\r
-SConscript('../../../extlibs/yaml/SConscript')\r
+#******************************************************************
+#
+# Copyright 2015 Samsung Electronics All Rights Reserved.
+#
+#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+
+import os
+Import('env')
+lib_env = env.Clone()
+SConscript('#service/third_party_libs.scons', 'lib_env')
+raml_env = lib_env.Clone()
+
+######################################################################
+# Build flags
+######################################################################
+raml_env.AppendUnique(CPPPATH = ['../../../extlibs/timer'])
+raml_env.AppendUnique(CPPPATH = ['raml/model','raml/jsonSchemaParser','raml', '../../../extlibs/yaml/yaml/src' , '../../../extlibs/yaml/yaml/include'])
+raml_env.AppendUnique(CXXFLAGS = ['-std=c++0x', '-Wall', '-pthread'])
+raml_env.AppendUnique(CPPDEFINES = ['LINUX'])
+
+raml_env.Append( RPATH = env.Literal('\\$$ORIGIN'))
+
+raml_env.AppendUnique(CPPPATH = ['../../../extlibs/cjson/'])
+raml_env.PrependUnique(LIBS = ['octbstack', 'YamlParser'])
+raml_env.AppendUnique(LIBS = ['pthread', 'm'])
+
+raml_env.AppendUnique(CXXFLAGS = ['-O2', '-g', '-Wall', '-fmessage-length=0', '-std=c++0x'])
+
+######################################################################
+# Source files and Targets
+######################################################################
+raml_src = ['#extlibs/cjson/cJSON.c', env.Glob('raml/model/*.cpp'), env.Glob('raml/jsonSchemaParser/*.cpp'), env.Glob('raml/*.cpp')]
+ramlsdk = raml_env.SharedLibrary('RamlParser', raml_src)
+
+raml_env.InstallTarget(ramlsdk, 'libRaml')
+
+SConscript('../../../extlibs/yaml/SConscript')