[Win32] Modify SConscripts to prepare for VS
authorDavid Antler <david.a.antler@intel.com>
Wed, 11 May 2016 20:34:09 +0000 (13:34 -0700)
committerDavid Antler <david.a.antler@intel.com>
Thu, 2 Jun 2016 17:41:12 +0000 (17:41 +0000)
Change-Id: Ieebc9ab44f597a9cd47e28591e6edb8be30399c4
Signed-off-by: David Antler <david.a.antler@intel.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/8107
Reviewed-by: Dave Thaler <dthaler@microsoft.com>
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
43 files changed:
SConstruct
build_common/SConscript
build_common/external_libs.scons
build_common/windows/SConscript [new file with mode: 0644]
extlibs/boost/SConscript
extlibs/gtest/SConscript
extlibs/sqlite3/SConscript
extlibs/timer/SConscript
extlibs/tinydtls/SConscript
plugins/SConscript
plugins/src/SConscript
resource/SConscript
resource/c_common/SConscript
resource/csdk/SConscript
resource/csdk/connectivity/SConscript
resource/csdk/connectivity/build/SConscript
resource/csdk/connectivity/common/SConscript
resource/csdk/connectivity/lib/libcoap-4.1.1/SConscript
resource/csdk/connectivity/src/SConscript
resource/csdk/connectivity/test/SConscript
resource/csdk/security/SConscript
resource/csdk/security/provisioning/SConscript
resource/csdk/security/provisioning/sample/SConscript
resource/csdk/security/unittest/SConscript
resource/csdk/stack/samples/linux/SimpleClientServer/SConscript
resource/csdk/stack/samples/linux/SimpleClientServer/common.h [new file with mode: 0644]
resource/csdk/stack/samples/linux/secure/SConscript
resource/csdk/stack/samples/tizen/build/packaging/com.oic.ri.spec
resource/csdk/stack/test/SConscript
resource/examples/SConscript
resource/oc_logger/SConscript
resource/oc_logger/examples/SConscript
resource/src/SConscript
resource/third_party_libs.scons
resource/unit_tests.scons
service/SConscript
service/resource-container/examples/BMISensorBundle/src/inputSensors/HeightSensorApp/SConscript
service/resource-directory/SConscript
service/resource-directory/samples/SConscript
service/resource-encapsulation/SConscript
service/resource-hosting/SConscript
service/third_party_libs.scons
tools/scons/RunTest.py

index ac9b9ca..ac76f39 100644 (file)
@@ -56,7 +56,7 @@ build_dir = env.get('BUILD_DIR')
 # Build 'resource' sub-project
 SConscript(build_dir + 'resource/SConscript')
 
-if target_os not in ['arduino','darwin','ios', 'android', 'msys_nt']:
+if target_os not in ['arduino','darwin','ios', 'android', 'msys_nt', 'windows']:
        SConscript(build_dir + 'examples/OICMiddle/SConscript')
 
 # Build 'service' sub-project
@@ -76,6 +76,6 @@ env.PrintTargets()
 if target_os == 'arduino':
        env.UploadHelp()
 
-# to install the generated pc file into custome prefix location
+# to install the generated pc file into custom prefix location
 env.UserInstallTargetPCFile('iotivity.pc', 'iotivity.pc')
 
index dbc59c4..0ef15ee 100644 (file)
@@ -237,6 +237,9 @@ def __installlib(ienv, targets, name):
                else:
                        i_n = ienv.Install(user_prefix + '/lib', targets)
                ienv.Alias("install", i_n)
+       else:
+               i_n = ienv.Install(env.get('BUILD_DIR'), targets)
+       ienv.Alias("install", i_n)
 
 def __installbin(ienv, targets, name):
        user_prefix = env.get('PREFIX')
@@ -248,7 +251,9 @@ def __installheader(ienv, targets, dir, name):
        user_prefix = env.get('PREFIX')
        if user_prefix:
                i_n = ienv.Install(user_prefix + '/include/' + dir ,targets)
-               ienv.Alias("install", i_n)
+       else:
+               i_n = ienv.Install(os.path.join(env.get('BUILD_DIR'), 'include', dir), targets)
+       ienv.Alias("install", i_n)
 
 def __installpcfile(ienv, targets, name):
        user_prefix = env.get('PREFIX')
@@ -258,7 +263,9 @@ def __installpcfile(ienv, targets, name):
                        i_n = ienv.Install(user_lib + '/pkgconfig', targets)
                else:
                        i_n = ienv.Install(user_prefix + '/lib/pkgconfig', targets)
-               ienv.Alias("install", i_n)
+       else:
+               i_n = ienv.Install(env.get('BUILD_DIR') + 'lib/pkgconfig', targets)
+       ienv.Alias("install", i_n)
 
 def __append_target(ienv, name, targets = None):
        if targets:
@@ -315,8 +322,8 @@ if user_prefix:
                                '\@ROUTING_DEFINE\@': routing_define
                                }
 else:
-       pc_vars = {'\@PREFIX\@': env.get('BUILD_DIR'),
-                               '\@EXEC_PREFIX\@': env.get('BUILD_DIR'),
+       pc_vars = {'\@PREFIX\@': env.get('BUILD_DIR').encode('string_escape'),
+                               '\@EXEC_PREFIX\@': env.get('BUILD_DIR').encode('string_escape'),
                                '\@VERSION\@': '1.0.1',
                                '\@LIB_INSTALL_DIR\@': user_lib,
                                '\@ROUTING_DEFINE\@': routing_define
index 2e28220..f1e8295 100644 (file)
@@ -40,8 +40,9 @@ if target_os == 'darwin':
 
 # External library include files are in <src_dir>/deps/<target_os>/include
 # the library binaries are in <src_dir>/deps/<target_os>/lib/<arch>
-env.AppendUnique(CPPPATH = [os.path.join(env.get('SRC_DIR'), 'deps', target_os, 'include')])
-env.AppendUnique(LIBPATH = [os.path.join(env.get('SRC_DIR'), 'deps', target_os, 'lib', target_arch)])
+if target_os not in ['windows']:
+       env.AppendUnique(CPPPATH = [os.path.join(env.get('SRC_DIR'), 'deps', target_os, 'include')])
+       env.AppendUnique(LIBPATH = [os.path.join(env.get('SRC_DIR'), 'deps', target_os, 'lib', target_arch)])
 
 # Check whether a library exists, if not, notify user to install it or try to
 # download the source code and build it
diff --git a/build_common/windows/SConscript b/build_common/windows/SConscript
new file mode 100644 (file)
index 0000000..305487a
--- /dev/null
@@ -0,0 +1,37 @@
+##
+# This script includes windows specific config (MSVS/MSVC)
+##
+Import('env')
+import os.path
+
+# Set common flags
+if env['CC'] == 'cl':
+       # C4244 conversion from one type to another type results in a possible loss of data.
+       # C4267 conversion from size_t to a smaller type.
+       # C4355 'this' used in base member initializer list.
+       # C4800 forcing value to bool 'true' or 'false'.
+       # C4996 deprecated declaration.
+       # C4820 added padding to the end of a struct.
+       # C4514 unreferenced inline function has been removed
+       # C4365 signed/unsigned mismatch
+       # C4503 decorated name length exceeded, name was truncated
+       env.AppendUnique(CXXFLAGS=['/wd4244', '/wd4267', '/wd4355', '/wd4800', '/wd4996', '/wd4820', '/wd4514', '/wd4365', '/wd4503'])
+       env.AppendUnique(CCFLAGS=['/EHsc'])
+
+       # Enable special exports for unit test purposes
+       if env.get('TEST') == '1':
+               env.AppendUnique(CPPDEFINES = ['ENABLE_TEST_EXPORTS'])
+       # Set release/debug flags
+       if env.get('RELEASE'):
+               env.AppendUnique(CCFLAGS = ['/MD', '/O2', '/GF'])
+               env.AppendUnique(CPPDEFINES = ['NDEBUG'])
+       else:
+               env.AppendUnique(CCFLAGS = ['/MDd', '/Od', '/ZI', '/RTC1', '/Gm'])
+               env.AppendUnique(LINKFLAGS = ['/debug'])
+       env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
+       env.AppendUnique(PATH = os.environ['PATH'])
+
+elif env['CC'] == 'gcc':
+       print "\nError: gcc not supported on Windows.  Use Visual Studio!\n"
+       Exit(1);
+
index c9fa5cf..d32b8b5 100644 (file)
@@ -8,24 +8,54 @@ modules = ['thread','program_options', 'system', 'date_time']
 
 target_os = env.get('TARGET_OS')
 target_arch = env.get('TARGET_ARCH')
+src_dir = env.get('SRC_DIR')
+
+boost_version   = '1.60.0'
+
+# TODO: Remove coupling between build scripts and 1_58_0 version for Android
+if target_os in ['android']:
+    boost_version   = '1.58.0'
+
+boost_base_name  = 'boost_'+string.replace(boost_version,'.','_')
+boost_arch_name  = boost_base_name+'.zip'
+boost_b2_name    = boost_base_name+os.sep+'b2'
+boost_url       = 'http://downloads.sourceforge.net/project/boost/boost/'+boost_version+'/'+boost_arch_name+'?r=&ts=1421801329&use_mirror=iweb'
+
+boost_dir = os.path.join(src_dir, 'extlibs','boost')
+boost_bootstrap = os.path.join(boost_dir,'bootstrap.bat')
 
 if 'linux' == target_os :
     # Check for Boost libraries in /usr/boost
     print 'TODO: Perform platform check for linux'
     raise SCons.Errors.EnvironmentError('Unsupported platform')
 
-if 'android' == target_os :
+elif target_os in ['windows']:
+    if not os.path.exists(boost_bootstrap) and target_os == 'windows':
+        # TODO: Enable installation of Boost via SConscript
+        print '''
+*********************************** Error: ****************************************
+* Please download boost from the following website:
+*
+*   ''' + boost_url + '''
+*
+* and extract the contents directly into:
+*
+*    ''' + boost_dir + '''
+*
+* such that you can find:
+*
+* ''' + boost_bootstrap + '''
+*
+***********************************************************************************
+'''
+        Exit(1)
+
+elif target_os in ['android']:
     env.Tool('URLDownload',    toolpath=['../../tools/scons'])
     env.Tool('UnpackAll',      toolpath=['../../tools/scons'])
     env.Tool('BoostBootstrap', toolpath=['../../tools/scons'])
     env.Tool('BoostBuild',     toolpath=['../../tools/scons'])
 
-    boost_version   = '1.58.0'
-    boost_base_name  = 'boost_'+string.replace(boost_version,'.','_')
-    boost_arch_name  = boost_base_name+'.zip'
-    boost_b2_name    = boost_base_name+os.sep+'b2'
-    boost_url       = 'http://downloads.sourceforge.net/project/boost/boost/'+boost_version+'/'+boost_arch_name+'?r=&ts=1421801329&use_mirror=iweb'
-
     host_os = sys.platform
 
     if host_os == 'linux2' :
index b7670a3..adddcc2 100644 (file)
@@ -11,9 +11,9 @@ Import('env')
 target_os = env.get('TARGET_OS')
 src_dir = env.get('SRC_DIR')
 
-targets_need_gtest = ['darwin','linux', 'msys_nt']
-gtest_dir      = src_dir + '/extlibs/gtest/gtest-1.7.0'
-gtest_zip_file = src_dir + '/extlibs/gtest/gtest-1.7.0.zip'
+targets_need_gtest = ['darwin','linux', 'msys_nt', 'windows']
+gtest_dir      = os.path.join(src_dir, 'extlibs', 'gtest', 'gtest-1.7.0')
+gtest_zip_file = os.path.join(src_dir, 'extlibs', 'gtest', 'gtest-1.7.0.zip')
 gtest_url      = 'https://googletest.googlecode.com/files/gtest-1.7.0.zip'
 
 if target_os in targets_need_gtest:
@@ -27,8 +27,9 @@ if target_os in targets_need_gtest:
                        gtest_zip = gtest_zip_file
 
                # Unzip gtest
-               print 'Unzipping google unit test'
-               env.UnpackAll(gtest_dir, gtest_zip)
+               if not os.path.exists(os.path.join(gtest_dir, 'configure')):
+                       print 'Unzipping google unit test'
+                       env.UnpackAll(gtest_dir, gtest_zip)
 
 
 if target_os == 'darwin':
@@ -101,3 +102,61 @@ elif target_os == 'msys_nt':
                        env.Configure(gtest_dir, 'mv libgtest.a lib/.libs')
                        env.Configure(gtest_dir, 'cp libgtest_main.a lib')
                        env.Configure(gtest_dir, 'mv libgtest_main.a lib/.libs')
+
+elif target_os == 'windows':
+       if os.path.exists(gtest_dir):
+               gtest_lib_dir = os.path.join(gtest_dir, 'lib')
+               gtest_dotlib_dir = os.path.join(gtest_lib_dir, '.libs')
+               if env.get('RELEASE'):
+                       output_dir = os.path.join(gtest_dir, 'Release') + os.sep
+               else:
+                       output_dir = os.path.join(gtest_dir, 'Debug') + os.sep
+
+               # Three parts to the gtest config string...
+               # 1. "Visual Studio" toolchain name.
+               # 2. VS Version + Year ("14 2015", "12 2013").
+               # 3. Target Architecture ("Win64", "Win32").
+               vs_version_year = ""
+               vs_target_arch  = ""
+               vs_num = env['MSVC_VERSION']
+               if "12.0" in vs_num:
+                       vs_version_year = "Visual Studio 12 2013"
+               elif "14.0" in vs_num:
+                       vs_version_year = "Visual Studio 14 2015"
+               else:
+                       print "Error: unknown Visual Studio version %s" % vs_num
+
+               vs_arch = env['TARGET_ARCH']
+               if "amd64" in vs_arch:
+                       vs_target_arch = "Win64"
+               elif "x86" in vs_arch:
+                       vs_target_arch = ""
+               else:
+                       print "Error: unknown Visual Studio target arch %s" % vs_arch
+
+               vs_target_string = vs_version_year + " " + vs_target_arch
+
+               # Exit if we didn't get a match for one of the above.
+               if not vs_version_year or not vs_target_arch:
+                       Exit(1)
+
+               if not os.path.exists(gtest_lib_dir):
+                       # Create lib dir
+                       os.mkdir(gtest_lib_dir)
+                       os.mkdir(gtest_dotlib_dir)
+
+                       # Run configure on gtest
+                       print 'Configuring google unit test for compilation'
+                       env.Configure(gtest_dir, 'cmake . -G"'+vs_target_string+'" -Dgtest_force_shared_crt=ON')
+
+                       # Run make on gtest
+                       print 'Making google unit test'
+                       env.Configure(gtest_dir, 'msbuild gtest.vcxproj')
+                       env.Configure(gtest_dir, 'msbuild gtest_main.vcxproj')
+
+                       print 'Moving libraries to lib folder'
+                       env.Configure(gtest_dir, 'copy '+output_dir+'gtest.lib %s' % gtest_lib_dir)
+                       env.Configure(gtest_dir, 'move '+output_dir+'gtest.lib %s' % gtest_dotlib_dir )
+                       env.Configure(gtest_dir, 'copy '+output_dir+'gtest_main.lib %s' % gtest_lib_dir)
+                       env.Configure(gtest_dir, 'move '+output_dir+'gtest_main.lib %s' % gtest_dotlib_dir)
+
index c5dc9c8..a7e033b 100755 (executable)
@@ -11,7 +11,7 @@ sqlite_env = env.Clone()
 target_os = sqlite_env.get('TARGET_OS')
 src_dir = sqlite_env.get('SRC_DIR')
 
-targets_need_sqlite = ['linux', 'android', 'tizen', 'msys_nt']
+targets_need_sqlite = ['linux', 'android', 'tizen', 'msys_nt', 'windows']
 sqlite_dir      = src_dir + '/extlibs/sqlite3/'
 sqlite_build_dir      = src_dir + '/extlibs/sqlite3/sqlite-amalgamation-3081101/'
 sqlite_zip_file = src_dir + '/extlibs/sqlite3/sqlite-amalgamation-3081101.zip'
index edcc7ef..33d134a 100644 (file)
 # *****************************************************************/
 
 Import('env')
-env.AppendUnique(TIMER_SRC = 'timer.c')
-
-libtimer = env.StaticLibrary('libtimer', env.get('TIMER_SRC'), OBJPREFIX='libtimer_')
-env.InstallTarget(libtimer, 'libtimer');
 
+timer_src = [ 'timer.c' ]
 
+libtimer = env.StaticLibrary('timer', timer_src, OBJPREFIX='libtimer_')
+env.InstallTarget(libtimer, 'timer');
 
index fd36b1f..54cb48e 100644 (file)
@@ -90,6 +90,9 @@ if not env.get('RELEASE'):
        samples_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
        samples_env.PrependUnique(LIBS = ['tinydtls'])
 
+       if target_os in ['windows', 'msys_nt']:
+               samples_env.AppendUnique(LIBS = ['ws2_32', 'iphlpapi', 'advapi32'])
+
        Alias("samples", [dtlsserver, dtlsclient])
 
        samples_env.AppendTarget('samples')
index 8e14ffd..8fc70bc 100644 (file)
@@ -29,7 +29,7 @@ target_os = env.get('TARGET_OS')
 build_sample = env.get('BUILD_SAMPLE')
 src_dir = env.get('SRC_DIR')
 
-if target_os not in ['android', 'arduino', 'darwin', 'ios', 'tizen', 'msys_nt']:
+if target_os not in ['android', 'arduino', 'darwin', 'ios', 'tizen', 'msys_nt', 'windows']:
 
     SConscript(os.path.join('zigbee_wrapper', 'SConscript'))
 
index 939084d..e7daaa6 100644 (file)
@@ -81,6 +81,6 @@ if target_os in ['android', 'tizen']:
        calib = env.SharedLibrary('plugin_interface', env.get('PI_SRC'))
 else:
        calib = env.StaticLibrary('plugin_interface', env.get('PI_SRC'))
-env.InstallTarget(calib, 'libplugin_interface')
-env.UserInstallTargetLib(calib, 'libplugin_interface')
+env.InstallTarget(calib, 'plugin_interface')
+env.UserInstallTargetLib(calib, 'plugin_interface')
 
index c552b1f..554bb9d 100644 (file)
@@ -31,7 +31,7 @@ src_dir = env.get('SRC_DIR')
 # Build liblogger
 SConscript('csdk/logger/SConscript')
 
-if target_os not in ['arduino', 'darwin', 'ios', 'android', 'msys_nt']:
+if target_os not in ['arduino', 'darwin', 'ios', 'android', 'msys_nt', 'windows']:
        env.AppendUnique(LIBS=['rt'])
 
 # Build libcoap
@@ -64,7 +64,7 @@ if target_os not in ['arduino','darwin','ios','android']:
        # Build examples
        SConscript('examples/SConscript')
 
-if target_os == 'linux':
+if target_os in ['linux', 'windows']:
        # Build C Samples
        SConscript('csdk/stack/samples/linux/SimpleClientServer/SConscript')
 
index a9285ae..2b46f5c 100644 (file)
@@ -24,18 +24,22 @@ import os
 
 target_os = env.get('TARGET_OS')
 
+# Add platform-specific helper library
+if target_os in ['windows', 'msys_nt']:
+       SConscript('windows/SConscript')
+
 env.AppendUnique(CPPPATH = [
             os.path.join(Dir('.').abspath),
-            os.path.join(Dir('.').abspath, 'oic_malloc/include'),
-            os.path.join(Dir('.').abspath, 'oic_string/include'),
-            os.path.join(Dir('.').abspath, 'oic_time/include'),
-            os.path.join(Dir('.').abspath, 'ocrandom/include')
+            os.path.join(Dir('.').abspath, 'oic_malloc', 'include'),
+            os.path.join(Dir('.').abspath, 'oic_string', 'include'),
+            os.path.join(Dir('.').abspath, 'oic_time', 'include'),
+            os.path.join(Dir('.').abspath, 'ocrandom', 'include')
         ])
 
 if target_os == 'tizen':
        env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
 else:
-       env.AppendUnique(LIBPATH = [os.path.join(env.get('BUILD_DIR'), 'resource/c_common')])
+       env.AppendUnique(LIBPATH = [os.path.join(env.get('BUILD_DIR'), 'resource', 'c_common')])
 
 if target_os in ['tizen', 'linux']:
        env.ParseConfig("pkg-config --cflags --libs uuid")
@@ -43,6 +47,7 @@ if target_os in ['tizen', 'linux']:
 env.PrependUnique(LIBS = ['c_common'])
 
 common_env = env.Clone()
+common_env.AppendUnique(LIBPATH = [os.path.join(env.get('BUILD_DIR'), 'resource')])
 
 ######################################################################
 # Build flags
index e84ec1c..b2165a3 100644 (file)
@@ -72,7 +72,8 @@ if target_os not in ['windows', 'winrt']:
 
 liboctbstack_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
 
-if target_os in ['android', 'linux', 'tizen', 'msys_nt']:
+liboctbstack_env.PrependUnique(LIBS = ['ocsrm', 'coap'])
+if target_os in ['android', 'linux', 'tizen', 'msys_nt', 'windows']:
        liboctbstack_env.PrependUnique(LIBS = ['connectivity_abstraction'])
 
        if with_ra_ibb:
@@ -81,24 +82,27 @@ if target_os in ['android', 'linux', 'tizen', 'msys_nt']:
                if with_ra:
                        liboctbstack_env.AppendUnique(LIBS = ['ra_xmpp'])
 
-liboctbstack_env.AppendUnique(LIBS = ['coap', 'm'])
-liboctbstack_env.PrependUnique(LIBS = ['ocsrm'])
+if target_os in ['windows', 'msys_nt']:
+       liboctbstack_env.AppendUnique(CPPDEFINES  = ['OC_EXPORT_DLL'])
+       liboctbstack_env.AppendUnique(LIBS = ['ws2_32', 'advapi32', 'iphlpapi'])
+else:
+       liboctbstack_env.AppendUnique(LIBS = ['m'])
 
 if target_os in ['tizen', 'linux']:
        liboctbstack_env.ParseConfig("pkg-config --cflags --libs uuid")
 
-if target_os not in ['android', 'arduino', 'windows', 'winrt']:
+if target_os not in ['android', 'arduino', 'windows', 'winrt', 'msys_nt']:
        liboctbstack_env.AppendUnique(LIBS = ['pthread'])
 
 if target_os == 'arduino':
        liboctbstack_env.AppendUnique(CPPDEFINES = ['NDEBUG', 'WITH_ARDUINO'])
-elif target_os not in ['darwin','ios', 'msys_nt']:
+elif target_os not in ['darwin','ios', 'msys_nt', 'windows']:
        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']:
+if target_os not in ['arduino', 'windows']:
        liboctbstack_env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined'])
 if target_os == 'android':
     liboctbstack_env.AppendUnique(LINKFLAGS = ['-Wl,-soname,liboctbstack.so'])
@@ -114,14 +118,12 @@ if env.get('DTLS_WITH_X509') == '1':
 
 if env.get('WITH_RD') == '1':
        liboctbstack_env.PrependUnique(CPPPATH = ['../../service/resource-directory/include'])
+       liboctbstack_env.PrependUnique(LIBPATH = [env.get('BUILD_DIR') + 'service/resource-directory/include'])
        liboctbstack_env.AppendUnique(CPPDEFINES = ['-DWITH_RD'])
        liboctbstack_env.AppendUnique(LIBS = ['resource_directory'])
 
 liboctbstack_env.Append(LIBS = ['c_common'])
 
-if target_os in ['msys_nt']:
-       liboctbstack_env.Append(LIBS = ['ws2_32', 'iphlpapi'])
-
 if liboctbstack_env.get('ROUTING') in ['GW', 'EP']:
        liboctbstack_env.Prepend(LIBS = ['routingmanager'])
 
@@ -150,18 +152,22 @@ if with_tcp == True:
 
 liboctbstack_src.extend(env['cbor_files'])
 
-if target_os in ['arduino','darwin','ios'] :
-       static_liboctbstack = liboctbstack_env.StaticLibrary('octbstack', liboctbstack_src)
-       liboctbstack_env.InstallTarget(static_liboctbstack, 'liboctbstack')
-       liboctbstack_env.UserInstallTargetLib(static_liboctbstack, 'liboctbstack')
-       liboctbstack_env.UserInstallTargetHeader('stack/include/ocstackconfig.h', 'resource', 'ocstackconfig.h')
-       liboctbstack_env.UserInstallTargetHeader('stack/include/octypes.h', 'resource', 'octypes.h')
-else:
-       static_liboctbstack = liboctbstack_env.StaticLibrary('octbstack', liboctbstack_src)
+if target_os == 'windows':
+       liboctbstack_env.AppendUnique(CPPDEFINES = ['CBOR_API=__declspec(dllexport)',
+                                                   'CBOR_PRIVATE_API=__declspec(dllexport)'
+    ])
+
+static_liboctbstack = liboctbstack_env.StaticLibrary('octbstack', liboctbstack_src)
+octbstack_libs = Flatten(static_liboctbstack)
+
+if target_os not in ['arduino','darwin','ios'] :
        shared_liboctbstack = liboctbstack_env.SharedLibrary('octbstack', liboctbstack_src)
-       liboctbstack_env.InstallTarget([static_liboctbstack, shared_liboctbstack], 'liboctbstack')
-       liboctbstack_env.UserInstallTargetLib([static_liboctbstack, shared_liboctbstack], 'liboctbstack')
-       liboctbstack_env.UserInstallTargetHeader('stack/include/ocstackconfig.h', 'resource', 'ocstackconfig.h')
-       liboctbstack_env.UserInstallTargetHeader('stack/include/octypes.h', 'resource', 'octypes.h')
+       octbstack_libs += Flatten(shared_liboctbstack)
        liboctbstack_env.UserInstallTargetHeader('stack/include/ocstack.h', 'resource', 'ocstack.h')
        liboctbstack_env.UserInstallTargetHeader('stack/include/ocpresence.h', 'resource', 'ocpresence.h')
+
+liboctbstack_env.InstallTarget(octbstack_libs, 'octbstack')
+liboctbstack_env.UserInstallTargetLib(octbstack_libs, 'octbstack')
+
+liboctbstack_env.UserInstallTargetHeader('stack/include/ocstackconfig.h', 'resource', 'ocstackconfig.h')
+liboctbstack_env.UserInstallTargetHeader('stack/include/octypes.h', 'resource', 'octypes.h')
index 3a95395..e4aa2eb 100644 (file)
@@ -35,7 +35,7 @@ if 'ALL' in transport:
                env.AppendUnique(CPPDEFINES = ['IP_ADAPTER','EDR_ADAPTER','LE_ADAPTER', 'NFC_ADAPTER'])
        elif target_os in['darwin','ios']:
                env.AppendUnique(CPPDEFINES = ['IP_ADAPTER','NO_EDR_ADAPTER','NO_LE_ADAPTER'])
-       elif target_os in ['msys_nt']:
+       elif target_os in ['msys_nt', 'windows']:
                env.AppendUnique(CPPDEFINES = ['IP_ADAPTER','NO_EDR_ADAPTER','NO_LE_ADAPTER'])
        else:
                env.AppendUnique(CPPDEFINES = ['IP_ADAPTER','EDR_ADAPTER','LE_ADAPTER'])
index e829d4b..4e46270 100644 (file)
@@ -152,9 +152,9 @@ def __set_dir(env, dir):
                Exit(1)
 
        if env.get('RELEASE'):
-               build_dir = dir + '/out/' + target_os + '/' + target_arch + '/release/'
+               build_dir = os.path.join(dir, 'out', target_os, target_arch, 'release') + os.sep
        else:
-               build_dir = dir + '/out/' + target_os + '/' + target_arch + '/debug/'
+               build_dir = os.path.join(dir, 'out', target_os, target_arch, 'debug') + os.sep
        env.VariantDir(build_dir, dir, duplicate=0)
 
        env.Replace(BUILD_DIR = build_dir)
@@ -176,6 +176,9 @@ def __installlib(ienv, targets, name):
        if user_prefix:
                i_n = ienv.Install(user_prefix + '/lib', targets)
                ienv.Alias("install", i_n)
+       else:
+               i_n = ienv.Install(env.get('BUILD_DIR') + '/lib', targets)
+       ienv.Alias("install", i_n)
 
 def __installbin(ienv, targets, name):
        user_prefix = env.get('PREFIX')
index 79326e5..4db7d47 100644 (file)
@@ -29,7 +29,7 @@ ca_common_src = [
                ca_common_src_path + 'caremotehandler.c'
        ]
 
-if env['POSIX_SUPPORTED']:
+if env['POSIX_SUPPORTED'] or (ca_os in ['windows']):
        platform_src = [
                ca_common_src_path + 'cathreadpool_pthreads.c',
                ca_common_src_path + 'camutex_pthreads.c'
index 2bd26e3..0623dbe 100644 (file)
@@ -38,7 +38,7 @@ if target_os not in ['windows', 'winrt']:
                        '-fdata-sections', '-fno-exceptions'])
 
 if target_os == 'msys_nt':
-       libcoap_env.AppendUnique(CPPDEFINES = ['WITH_POSIX', '_DEFAULT_SOURCE'])
+       libcoap_env.AppendUnique(CPPDEFINES = ['_DEFAULT_SOURCE'])
        libcoap_env.AppendUnique(CFLAGS = ['-std=c99'])
 
 if target_os in ['linux', 'tizen', 'android', 'ios', 'arduino']:
@@ -78,6 +78,6 @@ libcoap_src = [
        'block.c'
        ]
 
-libcoap = libcoap_env.StaticLibrary('libcoap', libcoap_src, OBJPREFIX='libcoap_')
+libcoap = libcoap_env.StaticLibrary('coap', libcoap_src, OBJPREFIX='libcoap_')
 
-libcoap_env.InstallTarget([libcoap], 'libcoap')
+libcoap_env.InstallTarget([libcoap], 'coap')
index f04ebd5..1cf0fdb 100644 (file)
@@ -46,17 +46,11 @@ env.SConscript(os.path.join(root_dir, 'util', 'SConscript'))
 # The tinydtls library is found in '#extlibs/tinydtls', where the '#'
 # is interpreted by SCons as the top-level iotivity directory where
 # the SConscruct file is found.
+build_dir = env.get('BUILD_DIR')
 if env.get('SECURED') == '1':
-       if ca_os == 'tizen' and os.path.exists(root_dir + '/extlibs/tinydtls'):
-               env.SConscript(os.path.join(root_dir, 'extlibs/tinydtls/SConscript'))
-       else:
-               env.SConscript('#extlibs/tinydtls/SConscript')
-       if ca_os == 'tizen' and os.path.exists(root_dir + '/extlibs/timer'):
-               env.SConscript(os.path.join(root_dir, 'extlibs/timer/SConscript'))
-               env.AppendUnique(CPPPATH = [os.path.join(root_dir, 'extlibs/timer')])
-       else:
-               env.SConscript('#extlibs/timer/SConscript')
-               env.AppendUnique(CPPPATH = ['#extlibs/timer'])
+       env.SConscript(build_dir + 'extlibs/tinydtls/SConscript')
+       env.SConscript(build_dir + 'extlibs/timer/SConscript')
+       env.AppendUnique(CPPPATH = ['#extlibs/timer'])
 
 env.AppendUnique(CA_SRC = [os.path.join(ca_path,
                                         'adapter_util/caadapterutils.c')])
@@ -174,7 +168,7 @@ if ca_os in ['android', 'tizen']:
        if ca_os != 'android':
                lib_env.AppendUnique(LIBS = ['rt'])
        calib = lib_env.SharedLibrary('connectivity_abstraction', env.get('CA_SRC'))
-elif ca_os in ['msys_nt']:
+elif ca_os in ['msys_nt', 'windows']:
        lib_env.AppendUnique(LIBS = ['coap', 'mswsock', 'ws2_32', 'iphlpapi', 'logger'])
        if lib_env.get('SECURED') == '1':
                lib_env.AppendUnique(LIBS = ['tinydtls'])
@@ -182,5 +176,5 @@ elif ca_os in ['msys_nt']:
        calib = lib_env.StaticLibrary('connectivity_abstraction', env.get('CA_SRC'))
 else:
        calib = lib_env.StaticLibrary('connectivity_abstraction', lib_env.get('CA_SRC'))
-lib_env.InstallTarget(calib, 'libconnectivity_abstraction')
-lib_env.UserInstallTargetLib(calib, 'libconnectivity_abstraction')
+lib_env.InstallTarget(calib, 'connectivity_abstraction')
+lib_env.UserInstallTargetLib(calib, 'connectivity_abstraction')
index c256262..f4a6b3e 100644 (file)
@@ -29,7 +29,6 @@ src_dir = catest_env.get('SRC_DIR')
 # Build flags
 ######################################################################
 catest_env.PrependUnique(CPPPATH = [
-                '../../ocsocket/include',
                 '../../logger/include',
                 '../../stack/include',
                 '../../extlibs/cjson',
@@ -43,11 +42,9 @@ if '-lpthread' in tmplist:
     catest_env.Replace(LINKFLAGS = tmplist)
 
 catest_env.AppendUnique(CXXFLAGS = ['-std=c++0x', '-Wall', '-pthread'])
-catest_env.AppendUnique(LIBS = ['pthread'])
 catest_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
 catest_env.AppendUnique(LIBPATH = [src_dir + '/extlibs/gtest/gtest-1.7.0/lib/.libs'])
-catest_env.PrependUnique(LIBS = ['m',
-                                    'octbstack',
+catest_env.PrependUnique(LIBS = ['octbstack',
                                     'connectivity_abstraction',
                                     'coap',
                                     'gtest',
@@ -55,19 +52,26 @@ catest_env.PrependUnique(LIBS = ['m',
 
 target_os = env.get('TARGET_OS')
 
-if target_os not in ['arduino', 'darwin', 'ios', 'msys_nt']:
+if target_os not in ['arduino', 'darwin', 'ios', 'msys_nt', 'windows']:
        catest_env.AppendUnique(LIBS=['rt'])
 
 if env.get('SECURED') == '1':
        catest_env.AppendUnique(LIBS = ['tinydtls'])
        catest_env.AppendUnique(LIBS = ['timer'])
 
+if env.get('WITH_RD') == '1':
+       catest_env.PrependUnique(LIBS = ['resource_directory'])
+
 if env.get('LOGGING'):
        catest_env.AppendUnique(CPPDEFINES = ['TB_LOG'])
 
-if target_os in ['msys_nt']:
+if target_os in ['msys_nt', 'windows']:
+       catest_env.AppendUnique(LINKFLAGS = ['/subsystem:CONSOLE'])
        catest_env.AppendUnique(LIBS = ['ws2_32',
+                                        'advapi32',
                                         'iphlpapi'])
+else:
+       catest_env.PrependUnique(LIBS = ['m', 'pthread'])
 
 ######################################################################
 # Source files and Targets
@@ -97,7 +101,8 @@ Alias("test", [catests])
 
 env.AppendTarget('test')
 if env.get('TEST') == '1':
-        if target_os == 'linux':
+        if target_os in ['linux', 'windows']:
+                catest_env.AppendENVPath('PATH', env.get('BUILD_DIR'))
                 from tools.scons.RunTest import *
                 run_test(catest_env,
                          'resource_csdk_connectivity_test.memcheck',
index 12afb4a..96ae81c 100644 (file)
@@ -22,6 +22,7 @@
 ##
 
 Import('env')
+import os
 
 lib_env = env.Clone()
 SConscript(env.get('SRC_DIR') + '/resource/third_party_libs.scons', 'lib_env')
@@ -58,18 +59,19 @@ libocsrm_env.PrependUnique(CPPPATH = [
 
 if target_os not in ['arduino', 'windows', 'winrt']:
        libocsrm_env.AppendUnique(CPPDEFINES  = ['WITH_POSIX'])
-       libocsrm_env.AppendUnique(CFLAGS = ['-std=c99'])
-
-if target_os not in ['windows', 'winrt']:
-       libocsrm_env.AppendUnique(CFLAGS = ['-Wall'])
+       libocsrm_env.AppendUnique(CFLAGS = ['-std=c99', '-Wall'])
 
 libocsrm_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
-libocsrm_env.AppendUnique(LIBS = ['coap', 'm'])
+libocsrm_env.AppendUnique(LIBS = ['coap'])
 
 if target_os == 'arduino':
        libocsrm_env.AppendUnique(CPPDEFINES = ['NDEBUG', 'WITH_ARDUINO'])
-else:
+elif target_os not in ['windows', 'msys_nt']:
        libocsrm_env.AppendUnique(CFLAGS = ['-fPIC'])
+       libocsrm_env.AppendUnique(LIBS = ['m'])
+
+if target_os in ['windows', 'msys_nt']:
+       libocsrm_env.AppendUnique(LIBPATH = [os.path.join(env.get('BUILD_DIR'), 'resource', 'oc_logger')])
 
 if target_os in ['darwin', 'ios']:
        libocsrm_env.AppendUnique(CPPDEFINES = ['_DARWIN_C_SOURCE'])
@@ -86,54 +88,33 @@ if env.get('DTLS_WITH_X509') == '1':
 # Source files and Targets
 ######################################################################
 OCSRM_SRC = 'src/'
+libocsrm_src = [
+       OCSRM_SRC + 'secureresourcemanager.c',
+       OCSRM_SRC + 'resourcemanager.c',
+       OCSRM_SRC + 'aclresource.c',
+       OCSRM_SRC + 'verresource.c',
+       OCSRM_SRC + 'amaclresource.c',
+       OCSRM_SRC + 'amsmgr.c',
+       OCSRM_SRC + 'pstatresource.c',
+       OCSRM_SRC + 'doxmresource.c',
+       OCSRM_SRC + 'credresource.c',
+       OCSRM_SRC + 'svcresource.c',
+       OCSRM_SRC + 'pconfresource.c',
+       OCSRM_SRC + 'dpairingresource.c',
+       OCSRM_SRC + 'policyengine.c',
+       OCSRM_SRC + 'psinterface.c',
+       OCSRM_SRC + 'srmresourcestrings.c',
+       OCSRM_SRC + 'srmutility.c',
+       OCSRM_SRC + 'iotvticalendar.c',
+       OCSRM_SRC + 'base64.c',
+       OCSRM_SRC + 'directpairing.c'
+       ]
+
 if env.get('SECURED') == '1':
-       libocsrm_src = [
-               OCSRM_SRC + 'secureresourcemanager.c',
-               OCSRM_SRC + 'resourcemanager.c',
-               OCSRM_SRC + 'aclresource.c',
-               OCSRM_SRC + 'amaclresource.c',
-               OCSRM_SRC + 'amsmgr.c',
-               OCSRM_SRC + 'pstatresource.c',
-               OCSRM_SRC + 'doxmresource.c',
-               OCSRM_SRC + 'credresource.c',
-               OCSRM_SRC + 'svcresource.c',
-               OCSRM_SRC + 'pconfresource.c',
-               OCSRM_SRC + 'dpairingresource.c',
-               OCSRM_SRC + 'verresource.c',
-               OCSRM_SRC + 'policyengine.c',
-               OCSRM_SRC + 'psinterface.c',
-               OCSRM_SRC + 'srmresourcestrings.c',
-               OCSRM_SRC + 'srmutility.c',
-               OCSRM_SRC + 'iotvticalendar.c',
-               OCSRM_SRC + 'oxmpincommon.c',
-               OCSRM_SRC + 'base64.c',
-               #pbkdf2.c is required to PIN based OxM only.
-               #But we did not use a separate build options to prevent the build command becomes complicated.
-               OCSRM_SRC + 'pbkdf2.c',
-               OCSRM_SRC + 'directpairing.c'
-               ]
-else:
-       libocsrm_src = [
-               OCSRM_SRC + 'secureresourcemanager.c',
-               OCSRM_SRC + 'resourcemanager.c',
-               OCSRM_SRC + 'aclresource.c',
-               OCSRM_SRC + 'amaclresource.c',
-               OCSRM_SRC + 'amsmgr.c',
-               OCSRM_SRC + 'pstatresource.c',
-               OCSRM_SRC + 'doxmresource.c',
-               OCSRM_SRC + 'credresource.c',
-               OCSRM_SRC + 'svcresource.c',
-               OCSRM_SRC + 'pconfresource.c',
-               OCSRM_SRC + 'dpairingresource.c',
-               OCSRM_SRC + 'policyengine.c',
-               OCSRM_SRC + 'verresource.c',
-               OCSRM_SRC + 'psinterface.c',
-               OCSRM_SRC + 'srmresourcestrings.c',
-               OCSRM_SRC + 'srmutility.c',
-               OCSRM_SRC + 'iotvticalendar.c',
-               OCSRM_SRC + 'base64.c',
-               OCSRM_SRC + 'directpairing.c'
-               ]
+       libocsrm_src  = libocsrm_src + [OCSRM_SRC + 'oxmpincommon.c', OCSRM_SRC + 'pbkdf2.c']
+
+if target_os in ['windows', 'msys_nt']:
+       libocsrm_src  = libocsrm_src + [OCSRM_SRC + 'strptime.c']
 
 if env.get('DTLS_WITH_X509') == '1' and env.get('SECURED') == '1':
        crl_src = [OCSRM_SRC + 'crlresource.c']
@@ -144,11 +125,11 @@ if libocsrm_conf.CheckFunc('strptime'):
        libocsrm_conf.env.AppendUnique(CPPDEFINES = ['HAVE_STRPTIME'])
 libocsrm_env = libocsrm_conf.Finish()
 
-libocsrm = libocsrm_env.StaticLibrary('libocsrm', libocsrm_src)
+libocsrm = libocsrm_env.StaticLibrary('ocsrm', libocsrm_src)
 
-libocsrm_env.InstallTarget(libocsrm, 'libocsrm')
+libocsrm_env.InstallTarget(libocsrm, 'ocsrm')
 
-if target_os in ['linux', 'android', 'tizen', 'msys_nt'] and env.get('SECURED') == '1':
+if target_os in ['linux', 'android', 'tizen', 'msys_nt', 'windows'] and env.get('SECURED') == '1':
        SConscript('provisioning/SConscript')
 
 if target_os in ['linux'] and env.get('SECURED') == '1':
index f909540..ce43e5a 100644 (file)
@@ -67,6 +67,15 @@ if target_os not in ['windows', 'msys_nt']:
        if target_os != 'android':
                provisioning_env.AppendUnique(LIBS = ['-lpthread', '-ldl'])
 
+provisioning_conf = Configure(provisioning_env)
+if provisioning_conf.CheckFunc('clock_gettime'):
+       provisioning_conf.env.AppendUnique(CPPDEFINES = ['HAVE_CLOCK_GETTIME'])
+if provisioning_conf.CheckFunc('GetSystemTimeAsFileTime') or target_os == 'windows':
+       # TODO: Remove target_os check.
+       # We currently check for 'windows' as well, because the environment can
+       # sometimes get so polluted that CheckFunc ceases to work!
+       provisioning_conf.env.AppendUnique(CPPDEFINES = ['HAVE_GETSYSTEMTIMEASFILETIME'])
+provisioning_env = provisioning_conf.Finish()
 
 provisioning_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
 provisioning_env.PrependUnique(LIBS = ['oc', 'octbstack', 'oc_logger', 'connectivity_abstraction', 'coap'])
@@ -111,14 +120,18 @@ provisioning_src = [
 if target_os != 'tizen':
        provisioning_src = provisioning_src + [root_dir+'/extlibs/sqlite3/sqlite3.c' ]
 
-provisioningserver = provisioning_env.SharedLibrary('ocpmapi', provisioning_src)
+if target_os == 'windows':
+       # TODO: Add OC_EXPORT annotations and enable generation of Windows DLL
+       provisioningserver = provisioning_env.StaticLibrary('ocpmapi', provisioning_src)
+else:
+       provisioningserver = provisioning_env.SharedLibrary('ocpmapi', provisioning_src)
 
-provisioning_env.InstallTarget(provisioningserver, 'libocpmapi')
-provisioning_env.UserInstallTargetLib(provisioningserver, 'libocpmapi')
+provisioning_env.InstallTarget(provisioningserver, 'ocpmapi')
+provisioning_env.UserInstallTargetLib(provisioningserver, 'ocpmapi')
 
 if env.get('DTLS_WITH_X509') == '1':
        SConscript('ck_manager/SConscript')
 
-if target_os in ['linux', 'msys_nt']:
+if target_os in ['linux', 'msys_nt', 'windows']:
        SConscript('sample/SConscript')
 
index 4fe27ae..f4951ac 100644 (file)
@@ -20,6 +20,7 @@
 #
 
 Import('env')
+import os.path
 
 provisioning_env = env.Clone()
 
@@ -47,18 +48,23 @@ provisioning_env.AppendUnique(CPPPATH = [
                ])
 
 target_os = env.get('TARGET_OS')
-provisioning_env.AppendUnique(CFLAGS = ['-D__WITH_DTLS__','-std=c99'])
-provisioning_env.AppendUnique(CXXFLAGS = ['-std=c++0x', '-Wall', '-pthread', '-fpermissive'])
 provisioning_env.AppendUnique(RPATH = [env.get('BUILD_DIR')])
+provisioning_env.AppendUnique(CPPDEFINES = ['__WITH_DTLS__'])
 
-if target_os in ['msys_nt']:
-       provisioning_env.PrependUnique(LIBS = ['-lpthread', 'ws2_32', 'iphlpapi'])
-else:
-       provisioning_env.AppendUnique(LIBS = ['-lpthread','-ldl'])
+if target_os not in ['windows']:
+       provisioning_env.AppendUnique(CFLAGS = ['-std=c99'])
+       provisioning_env.AppendUnique(CXXFLAGS = ['-std=c++0x', '-Wall', '-pthread', '-fpermissive'])
+       provisioning_env.AppendUnique(LIBS = ['-lpthread'])
+
+if target_os not in ['msys_nt', 'windows']:
+       provisioning_env.AppendUnique(LIBS = ['-ldl', 'm'])
        provisioning_env.ParseConfig('pkg-config --libs glib-2.0');
+       provisioning_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
+else:
+       provisioning_env.AppendUnique(LIBPATH = [os.path.join(env.get('BUILD_DIR'), 'resource', 'csdk')])
+       provisioning_env.AppendUnique(LIBS = ['ws2_32', 'iphlpapi', 'advapi32', 'timer'])
 
-provisioning_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
-provisioning_env.PrependUnique(LIBS = ['ocpmapi','oc', 'oc_logger', 'ocsrm','m', 'octbstack', 'connectivity_abstraction', 'coap'])
+provisioning_env.PrependUnique(LIBS = ['ocpmapi','oc', 'oc_logger', 'ocsrm', 'octbstack', 'connectivity_abstraction', 'coap'])
 
 if env.get('SECURED') == '1':
     provisioning_env.AppendUnique(LIBS = ['tinydtls'])
index c431d77..61ebcf3 100644 (file)
@@ -25,6 +25,7 @@ import os.path
 srmtest_env = env.Clone()
 
 src_dir = srmtest_env.get('SRC_DIR')
+target_os = env.get('TARGET_OS')
 
 ######################################################################
 # Build flags
@@ -62,11 +63,18 @@ srmtest_env.PrependUnique(LIBS = ['ocsrm',
                                     'gtest_main'])
 
 if env.get('SECURED') == '1':
-    srmtest_env.AppendUnique(LIBS = ['tinydtls'])
+    srmtest_env.AppendUnique(LIBS = ['tinydtls', 'timer'])
 
-if not env.get('RELEASE'):
+if env.get('LOGGING'):
        srmtest_env.AppendUnique(CPPDEFINES = ['TB_LOG'])
 
+if target_os == 'windows':
+       srmtest_env.AppendUnique(LINKFLAGS = ['/subsystem:CONSOLE'])
+       srmtest_env.AppendUnique(LIBS = ['advapi32', 'kernel32', 'ws2_32', 'iphlpapi'])
+else:
+       # TODO: Implement feature check.
+       srmtest_env.AppendUnique(CPPDEFINES = ['HAVE_LOCALTIME_R'])
+
 ######################################################################
 # Source files and Targets
 ######################################################################
@@ -87,9 +95,9 @@ unittest = srmtest_env.Program('unittest', ['aclresourcetest.cpp',
 Alias("test", [unittest])
 
 unittest_src_dir = src_dir + '/resource/csdk/security/unittest/'
-unittest_build_dir = env.get('BUILD_DIR') + 'resource/csdk/security/unittest'
+unittest_build_dir = os.path.join(env.get('BUILD_DIR'), 'resource', 'csdk', 'security', 'unittest') + os.sep
 
-srmtest_env.AppendUnique(CPPDEFINES = ['SECURITY_BUILD_UNITTEST_DIR='+unittest_build_dir])
+srmtest_env.AppendUnique(CPPDEFINES = ['SECURITY_BUILD_UNITTEST_DIR='+unittest_build_dir.encode('string_escape')])
 
 srmtest_env.Alias("install", srmtest_env.Install( unittest_build_dir,
     unittest_src_dir + 'oic_unittest.json'))
@@ -108,13 +116,14 @@ srmtest_env.Alias("install", srmtest_env.Install( unittest_build_dir,
 env.AppendTarget('test')
 if env.get('TEST') == '1':
        target_os = env.get('TARGET_OS')
-       if target_os == 'linux':
+       if target_os in ['linux', 'windows']:
                out_dir = env.get('BUILD_DIR')
                result_dir = env.get('BUILD_DIR') + '/test_out/'
                if not os.path.isdir(result_dir):
                        os.makedirs(result_dir)
                srmtest_env.AppendENVPath('GTEST_OUTPUT', ['xml:'+ result_dir])
                srmtest_env.AppendENVPath('LD_LIBRARY_PATH', [out_dir])
+               srmtest_env.AppendENVPath('PATH', [os.path.join(out_dir, 'resource', 'csdk')])
                srmtest_env.AppendENVPath('LD_LIBRARY_PATH', ['./extlibs/gtest/gtest-1.7.0/lib/.libs'])
                ut = srmtest_env.Command ('ut', None, out_dir + '/resource/csdk/security/unittest/unittest')
                AlwaysBuild ('ut')
index fe69612..5a3305b 100644 (file)
@@ -29,21 +29,26 @@ samples_env.PrependUnique(CPPPATH = [
                '../../../../logger/include',
                '../../../../stack/include',
                '../../../../../../extlibs/cjson',
+               '../../../../../../extlibs/boost',
                '../../../../../oc_logger/include',
                '../../../../../connectivity/lib/libcoap-4.1.1'
                ])
 
-samples_env.AppendUnique(CXXFLAGS = ['-std=c++0x', '-Wall', '-pthread'])
+cc = env.get('CC')
+if cc in ['gcc']:
+       samples_env.AppendUnique(CXXFLAGS = ['-std=c++0x', '-Wall', '-pthread'])
+       samples_env.AppendUnique(LIBS=['-lpthread'])
 samples_env.AppendUnique(RPATH = [env.get('BUILD_DIR')])
-samples_env.AppendUnique(LIBS = ['-lpthread' ])
 samples_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
 
-if target_os in ['darwin', 'ios']:
-       samples_env.PrependUnique(LIBS = ['m','octbstack', 'ocsrm', 'connectivity_abstraction','coap' ])
-elif target_os not in ['arduino']:
-       samples_env.PrependUnique(LIBS = ['m', 'octbstack', 'ocsrm', 'connectivity_abstraction', 'coap'])
+samples_env.PrependUnique(LIBS = ['octbstack', 'ocsrm', 'connectivity_abstraction', 'coap'])
+
+if target_os not in ['arduino', 'windows', 'darwin', 'ios', 'msys_nt']:
        samples_env.AppendUnique(LIBS = ['rt'])
 
+if target_os not in ['windows']:
+       samples_env.PrependUnique(LIBS = ['m'])
+
 if env.get('SECURED') == '1':
     samples_env.AppendUnique(LIBS = ['tinydtls'])
 
diff --git a/resource/csdk/stack/samples/linux/SimpleClientServer/common.h b/resource/csdk/stack/samples/linux/SimpleClientServer/common.h
new file mode 100644 (file)
index 0000000..36a7456
--- /dev/null
@@ -0,0 +1,7 @@
+#ifndef COMMON_H_
+#define COMMON_H_
+
+const char *getResult(OCStackResult result);
+void StripNewLineChar(char* str);
+
+#endif
index 230b4da..7d95b95 100644 (file)
@@ -39,16 +39,17 @@ if target_os not in ['windows', 'winrt']:
        # Note: 'pthread' is in libc for android.
        if target_os != 'android':
                samples_env.AppendUnique(LIBS = ['-lpthread'])
+       samples_env.Append(LINKFLAGS = ['-Wl,--no-as-needed'])
 
 samples_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
-if target_os == 'msys_nt':
+if target_os in ['windows', 'msys_nt']:
        samples_env.PrependUnique(LIBS = ['ocsrm', 'ws2_32', 'iphlpapi'])
-samples_env.PrependUnique(LIBS = ['octbstack', 'm', 'connectivity_abstraction', 'coap'])
+else:
+       samples_env.PrependUnique(LIBS = ['m'])
+samples_env.PrependUnique(LIBS = ['octbstack', 'connectivity_abstraction', 'coap'])
 if env.get('SECURED') == '1':
     samples_env.AppendUnique(LIBS = ['tinydtls'])
 
-samples_env.Append(LINKFLAGS = ['-Wl,--no-as-needed'])
-
 if target_os == 'android':
        samples_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions'])
        samples_env.AppendUnique(LIBS = ['gnustl_shared'])
index 7e559c1..09d3093 100644 (file)
@@ -49,7 +49,7 @@ cp -f %{ROOTDIR}/resource/csdk/connectivity/src/libconnectivity_abstraction.so %
 cp -f %{ROOTDIR}/resource/csdk/connectivity/lib/libcoap-4.1.1/libcoap.a %{buildroot}/%{_libdir}
 cp /usr/lib/libuuid.so.1 %{buildroot}%{_libdir}
 if echo %{SECURED}|grep -qi '1'; then
-       cp -f %{ROOTDIR}/extlibs/tinydtls/libtinydtls.a %{buildroot}/%{_libdir}
+       cp -f %{ROOTDIR}/out/tizen/*/*/extlibs/tinydtls/libtinydtls.a %{buildroot}/%{_libdir}
 fi
 
 cp -rf %{ROOTDIR}/resource/csdk/stack/include/ocstack.h* %{DEST_INC_DIR}/
index 1029775..2d52917 100644 (file)
@@ -43,11 +43,9 @@ stacktest_env.PrependUnique(CPPPATH = [
                ])
 
 stacktest_env.AppendUnique(CXXFLAGS = ['-std=c++0x', '-Wall', '-pthread'])
-stacktest_env.AppendUnique(LIBS = ['-lpthread'])
 stacktest_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
 stacktest_env.AppendUnique(LIBPATH = [src_dir + '/extlibs/gtest/gtest-1.7.0/lib/.libs'])
-stacktest_env.PrependUnique(LIBS = ['m',
-                                    'octbstack',
+stacktest_env.PrependUnique(LIBS = ['octbstack',
                                     'ocsrm',
                                     'connectivity_abstraction',
                                     'coap',
@@ -65,9 +63,11 @@ if env.get('SECURED') == '1':
 if env.get('LOGGING'):
        stacktest_env.AppendUnique(CPPDEFINES = ['TB_LOG'])
 
-if target_os in ['msys_nt']:
-       stacktest_env.AppendUnique(LIBS = ['ws2_32',
-                                        'iphlpapi'])
+if target_os in ['msys_nt', 'windows']:
+       stacktest_env.AppendUnique(LINKFLAGS = ['/subsystem:CONSOLE'])
+       stacktest_env.AppendUnique(LIBS = ['ws2_32', 'iphlpapi', 'kernel32'])
+else:
+       stacktest_env.PrependUnique(LIBS = ['m', 'pthread'])
 
 ######################################################################
 # Source files and Targets
@@ -79,8 +79,9 @@ Alias("test", [stacktests, cbortests])
 
 env.AppendTarget('test')
 if env.get('TEST') == '1':
-       target_os = env.get('TARGET_OS')
-       if target_os == 'linux':
+       if target_os in ['windows']:
+               stacktest_env.AppendENVPath('PATH', [os.path.join(env.get('BUILD_DIR'), 'resource', 'csdk')])
+       if target_os in ['linux', 'windows']:
                 from tools.scons.RunTest import *
                 run_test(stacktest_env,
                          'resource_csdk_stack_test.memcheck',
index a1f3c7d..1484da4 100644 (file)
@@ -62,6 +62,8 @@ if target_os in ['msys_nt', 'windows']:
 if env.get('SECURED') == '1':
        examples_env.AppendUnique(LIBS = ['tinydtls'])
        examples_env.AppendUnique(CPPDEFINES = ['_WITH_DTLS_'])
+       if target_os in ['msys_nt', 'windows']:
+               examples_env.AppendUnique(LIBS = ['advapi32'])
 
 if target_os == 'android':
        examples_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions'])
@@ -79,53 +81,51 @@ if env.get('LOGGING'):
 if target_os in ['msys_nt', 'windows']:
        examples_env.AppendUnique(LIBS = ['Comctl32', 'Gdi32', 'User32'])
 
+if env.get('LOGGING'):
+       examples_env.AppendUnique(CPPDEFINES = ['TB_LOG'])
+
+def make_single_file_cpp_program(program_name):
+       return examples_env.Program(program_name, program_name + ".cpp")
+
 ######################################################################
 # Source files and Targets
 ######################################################################
-simpleserver = examples_env.Program('simpleserver', 'simpleserver.cpp')
-simpleclient = examples_env.Program('simpleclient', 'simpleclient.cpp')
-simpleserverHQ = examples_env.Program('simpleserverHQ', 'simpleserverHQ.cpp')
-simpleclientHQ = examples_env.Program('simpleclientHQ', 'simpleclientHQ.cpp')
-fridgeserver = examples_env.Program('fridgeserver', 'fridgeserver.cpp')
-fridgeclient = examples_env.Program('fridgeclient', 'fridgeclient.cpp')
-presenceserver = examples_env.Program('presenceserver', 'presenceserver.cpp')
-presenceclient = examples_env.Program('presenceclient', 'presenceclient.cpp')
-simpleclientserver = examples_env.Program('simpleclientserver', 'simpleclientserver.cpp')
-roomserver = examples_env.Program('roomserver', 'roomserver.cpp')
-roomclient = examples_env.Program('roomclient', 'roomclient.cpp')
-garageserver = examples_env.Program('garageserver', 'garageserver.cpp')
-garageclient = examples_env.Program('garageclient', 'garageclient.cpp')
-groupserver = examples_env.Program('groupserver', 'groupserver.cpp')
-groupclient = examples_env.Program('groupclient', 'groupclient.cpp')
-lightserver = examples_env.Program('lightserver', 'lightserver.cpp')
-devicediscoveryserver = examples_env.Program('devicediscoveryserver', 'devicediscoveryserver.cpp')
-devicediscoveryclient = examples_env.Program('devicediscoveryclient', 'devicediscoveryclient.cpp')
-threadingsample = examples_env.Program('threadingsample', 'threadingsample.cpp')
+example_names = [
+       'simpleserver', 'simpleclient',
+       'simpleclientserver',
+       'devicediscoveryserver', 'devicediscoveryclient'
+       ]
+
+if target_os not in ['windows', 'msys_nt']:
+       example_names += [
+               'simpleserverHQ', 'simpleclientHQ',
+               'fridgeserver', 'fridgeclient',
+               'presenceserver', 'presenceclient',
+               'roomserver', 'roomclient',
+               'garageserver',
+               'garageclient',
+               'groupserver',
+               'groupclient',
+               'lightserver',
+               'threadingsample',
+               ]
+
+examples = map(make_single_file_cpp_program, example_names)
 
+######################################################################
+# Other examples
+######################################################################
 clientjson = examples_env.Install(env.get('BUILD_DIR') + '/resource/examples/',
                                env.get('SRC_DIR') + '/resource/examples/' + 'oic_svr_db_client.dat')
 serverjson = examples_env.Install(env.get('BUILD_DIR') + '/resource/examples/',
                                env.get('SRC_DIR') + '/resource/examples/' + 'oic_svr_db_server.dat')
 
-examples_array = [simpleserver, simpleclient,
-               simpleserverHQ, simpleclientHQ,
-               fridgeserver, fridgeclient,
-               presenceserver, presenceclient,
-               simpleclientserver, roomserver, roomclient, garageserver,
-               garageclient,
-               groupserver, groupclient,
-               lightserver,
-               devicediscoveryserver, devicediscoveryclient,
-               threadingsample,
-               serverjson, clientjson
-     ]
-
-# Add platform-specific examples
+examples += [clientjson, serverjson]
 
 if target_os in ['msys_nt', 'windows']:
        winUIClient = examples_env.Program('winUIClient', ['winuiclientgui.cpp', 'winuiclient.cpp'])
        mediaserver = examples_env.Program('mediaserver', 'mediaserver.cpp')
-       examples_array += [winUIClient, mediaserver]
+       examples += [winUIClient, mediaserver]
 
-Alias("examples", examples_array)
+Alias("examples", examples)
 env.AppendTarget('examples')
index 56d1735..5e86cdc 100644 (file)
@@ -49,12 +49,21 @@ if target_os not in ['darwin', 'ios', 'windows', 'winrt', 'msys_nt']:
 ######################################################################
 # Source files and Targets
 ######################################################################
-liboc_logger_core = liboc_logger_env.SharedLibrary('oc_logger_core', 'c/oc_logger.c',  OBJPREFIX='core_')
-liboc_logger = liboc_logger_env.SharedLibrary('oc_logger',
+
+oc_logger_libs = []
+
+if target_os in ['windows', 'msys_nt']:
+       # TODO: Add OC_EXPORT API prefixes to enable oc_logger DLL generation.
+       oc_logger_libs += liboc_logger_env.StaticLibrary('oc_logger',
                ['c/oc_logger.c', 'c/oc_console_logger.c', 'cpp/oc_ostream_logger.cpp'])
+else:
+       oc_logger_libs += Flatten(liboc_logger_env.SharedLibrary('oc_logger_core',
+               ['c/oc_logger.c'],  OBJPREFIX='core_'))
+       oc_logger_libs += Flatten(liboc_logger_env.SharedLibrary('oc_logger',
+               ['c/oc_logger.c', 'c/oc_console_logger.c', 'cpp/oc_ostream_logger.cpp']))
 
-liboc_logger_env.InstallTarget([liboc_logger_core, liboc_logger], 'liboc_logger')
-liboc_logger_env.UserInstallTargetLib([liboc_logger_core, liboc_logger], 'liboc_logger')
+liboc_logger_env.InstallTarget(oc_logger_libs, 'oc_logger')
+liboc_logger_env.UserInstallTargetLib(oc_logger_libs, 'oc_logger')
 liboc_logger_env.UserInstallTargetHeader('include/oc_logger.hpp', 'resource', 'oc_logger.hpp')
 liboc_logger_env.UserInstallTargetHeader('include/oc_logger.h', 'resource', 'oc_logger.h')
 liboc_logger_env.UserInstallTargetHeader('include/oc_logger_types.h', 'resource', 'oc_logger_types.h')
index a3a4c91..7778b54 100644 (file)
@@ -33,7 +33,12 @@ examples_env = lib_env.Clone()
 ######################################################################
 examples_env.PrependUnique(CPPPATH = ['../include'])
 examples_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
-examples_env.AppendUnique(LIBS = ['oc_logger', 'stdc++'])
+examples_env.AppendUnique(LIBS = ['oc_logger'])
+examples_env.Append(LIBS = ['c_common'])
+
+compiler = env.get('CC')
+if compiler != 'cl':
+       examples_env.AppendUnique(LIBS = ['stdc++'])
 
 target_os = env.get('TARGET_OS')
 if target_os == 'android':
index ec64b00..7a43499 100644 (file)
@@ -70,8 +70,7 @@ if target_os == 'tizen':
 if target_os in ['linux'] and env.get('SIMULATOR', False):
     oclib_env.Append( RPATH = env.Literal('\\$$ORIGIN'))
 
-
-if target_os in ['msys_nt']:
+if target_os in ['msys_nt', 'windows']:
        oclib_env.AppendUnique(LIBPATH = [os.path.join(env.get('BUILD_DIR'), 'resource', 'oc_logger')])
        oclib_env.AppendUnique(LIBPATH = [os.path.join(env.get('BUILD_DIR'), 'resource', 'csdk')])
        oclib_env.AppendUnique(LIBS=['octbstack', 'logger', 'oc_logger','connectivity_abstraction', 'ocsrm', 'c_common', 'routingmanager'])
@@ -95,10 +94,14 @@ oclib_src = [
                'CAManager.cpp'
        ]
 
-oclib = oclib_env.SharedLibrary('oc', oclib_src)
-oclib_env.InstallTarget(oclib, 'liboc')
-oclib_env.UserInstallTargetLib(oclib, 'liboc')
-
+if target_os in ['windows']:
+       oclib_src = oclib_src + ['OCApi.cpp']
+       # TODO: Add OC_EXPORT prefixes to enable DLL generation
+       oclib = oclib_env.StaticLibrary('oc', oclib_src)
+else:
+       oclib = oclib_env.SharedLibrary('oc', oclib_src)
+oclib_env.InstallTarget(oclib, 'oc')
+oclib_env.UserInstallTargetLib(oclib, 'oc')
 header_dir = env.get('SRC_DIR') + '/resource/include/'
 
 oclib_env.UserInstallTargetHeader(header_dir + 'OCApi.h', 'resource', 'OCApi.h')
index 94495ba..9d2cb21 100644 (file)
@@ -68,6 +68,10 @@ if target_os == 'android':
                # Too much boost warning, suppress the warning
                lib_env.AppendUnique(CCFLAGS = ['-w'])
 
+elif target_os in ['windows']:
+       SConscript(os.path.join(env.get('SRC_DIR'), 'extlibs', 'boost', 'SConscript'))
+       boost_path = os.path.join(src_dir,'extlibs','boost')
+       lib_env.AppendUnique(CPPPATH = [boost_path])
 elif target_os == 'ios':
        lib_env.AppendUnique(FRAMEWORKS = ['boost'])
 elif target_os == 'darwin':
index 6c5348a..b4be2de 100644 (file)
@@ -60,7 +60,7 @@ if target_os == 'linux':
                SConscript('csdk/security/provisioning/unittest/SConscript')
                SConscript('provisioning/unittests/SConscript')
 
-elif target_os == 'darwin':
+elif target_os == 'windows' and env.get('TEST') == '1':
        # Verify that 'google unit test' library is installed.  If not,
        # get it and install it
        SConscript(src_dir + '/extlibs/gtest/SConscript')
@@ -69,7 +69,10 @@ elif target_os == 'darwin':
        SConscript('csdk/stack/test/SConscript')
        SConscript('csdk/connectivity/test/SConscript')
 
-elif target_os == 'msys_nt':
+       # Build Security Resource Manager unit tests
+       SConscript('csdk/security/unittest/SConscript')
+
+elif target_os in ['darwin', 'msys_nt']:
        # Verify that 'google unit test' library is installed.  If not,
        # get it and install it
        SConscript(src_dir + '/extlibs/gtest/SConscript')
index da5062e..114be6e 100755 (executable)
@@ -26,7 +26,7 @@ Import('env')
 
 target_os = env.get('TARGET_OS')
 
-if target_os not in ['arduino','darwin', 'ios']:
+if target_os not in ['arduino','darwin', 'ios', 'windows']:
     # Build things manager project
     SConscript('things-manager/SConscript')
 
@@ -47,9 +47,9 @@ if target_os not in ['arduino','darwin', 'ios']:
     if target_os in ['linux'] and env.get('SIMULATOR', False):
         SConscript('simulator/SConscript')
 
-    # Build resource directory project
-    if env.get('WITH_RD') == '1':
-        SConscript('resource-directory/SConscript')
+# Build resource directory project
+if env.get('WITH_RD') == '1':
+    SConscript('resource-directory/SConscript')
 
 # Build EasySetup module
 if target_os in ['arduino', 'android', 'linux','tizen']:
index 20516e4..81cf79d 100644 (file)
@@ -16,9 +16,9 @@ linux_sample_env.AppendUnique(CPPPATH = ['include'])
 linux_sample_env.AppendUnique(CXXFLAGS = ['-std=c++0x', '-Wall', '-pthread'])
 linux_sample_env.AppendUnique(CPPDEFINES = ['LINUX'])
 linux_sample_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
-linux_sample_env.AppendUnique(LIBS = ['libcoap'])
-linux_sample_env.AppendUnique(LIBS = ['libconnectivity_abstraction'])
-linux_sample_env.AppendUnique(LIBS = ['liboc_logger'])
+linux_sample_env.AppendUnique(LIBS = ['coap'])
+linux_sample_env.AppendUnique(LIBS = ['connectivity_abstraction'])
+linux_sample_env.AppendUnique(LIBS = ['oc_logger'])
 linux_sample_env.AppendUnique(LIBS = ['octbstack'])
 linux_sample_env.AppendUnique(LIBS = ['oc'])
 linux_sample_env.AppendUnique(LIBS = ['pthread'])
index b6ef553..710245d 100755 (executable)
 ##
 
 Import('env')
+rd_env = env.Clone()
 
-if env.get('RELEASE'):
-    env.AppendUnique(CCFLAGS = ['-Os'])
-    env.AppendUnique(CPPDEFINES = ['NDEBUG'])
-else:
-    env.AppendUnique(CCFLAGS = ['-g'])
-
-if env.get('LOGGING'):
-    env.AppendUnique(CPPDEFINES = ['-DTB_LOG'])
-
-lib_env = env.Clone()
-SConscript(env.get('SRC_DIR') + '/service/third_party_libs.scons', 'lib_env')
-rd_env = lib_env.Clone()
+if rd_env.get('LOGGING'):
+    rd_env.AppendUnique(CPPDEFINES = ['-DTB_LOG'])
 
 target_os = env.get('TARGET_OS')
+src_dir = env.get('SRC_DIR')
+
 ######################################################################
 # Build flags
 ######################################################################
 rd_env.AppendUnique(CPPPATH = ['include'])
 rd_env.AppendUnique(CPPPATH = ['src/internal'])
-rd_env.AppendUnique(CPPPATH = ['../../resource/csdk/logger/include'])
-rd_env.PrependUnique(LIBS = ['oc', 'octbstack', 'oc_logger', 'connectivity_abstraction', 'libcoap'])
+rd_env.AppendUnique(CPPPATH = ['../../resource/csdk/stack/include'])
+rd_env.PrependUnique(LIBS = ['oc', 'octbstack', 'oc_logger', 'connectivity_abstraction', 'coap'])
 
 if target_os not in ['windows', 'winrt']:
     rd_env.AppendUnique(CXXFLAGS = ['-O2', '-g', '-Wall', '-Wextra'])
@@ -64,7 +57,7 @@ if target_os == 'android':
 ######################################################################
 RD_SRC_DIR = 'src/'
 rd_src = [
-        RD_SRC_DIR + '/internal/rd_storage.c',
+        RD_SRC_DIR + 'internal/rd_storage.c',
         RD_SRC_DIR + 'rd_server.c',
         RD_SRC_DIR + 'rd_client.c',
          ]
@@ -74,12 +67,13 @@ if target_os in ['tizen'] :
 else :
     rdsdk = rd_env.StaticLibrary('resource_directory', rd_src)
 
-rd_env.InstallTarget(rdsdk, 'libresource_directory')
-rd_env.UserInstallTargetLib(rdsdk, 'libresource_directory')
-rd_env.UserInstallTargetHeader('/include/rd_client.h', 'service/resource-directory', 'rd_client.h')
-rd_env.UserInstallTargetHeader('/include/rd_server.h', 'service/resource-directory', 'rd_server.h')
+rd_env.InstallTarget(rdsdk, 'resource_directory')
+rd_env.UserInstallTargetLib(rdsdk, 'resource_directory')
+rd_env.UserInstallTargetHeader('include/rd_client.h', 'service/resource-directory', 'rd_client.h')
+rd_env.UserInstallTargetHeader('include/rd_server.h', 'service/resource-directory', 'rd_server.h')
 
 ######################################################################
 # Samples for the resource directory
 ######################################################################
-SConscript('samples/SConscript')
+if target_os not in ['windows']:
+    SConscript('samples/SConscript')
index c4d2128..8229a61 100644 (file)
@@ -29,12 +29,14 @@ SConscript(env.get('SRC_DIR') + '/service/third_party_libs.scons', 'lib_env')
 
 rd_sample_app_env = lib_env.Clone()
 
+target_os = env.get('TARGET_OS')
 ######################################################################
 # Build flags
 ######################################################################
 rd_sample_app_env.AppendUnique(CPPPATH = ['../include'])
 
-rd_sample_app_env.AppendUnique(CXXFLAGS = ['-O2', '-g', '-Wall', '-Wextra', '-std=c++0x'])
+if target_os not in ['windows']:
+    rd_sample_app_env.AppendUnique(CXXFLAGS = ['-O2', '-g', '-Wall', '-Wextra', '-std=c++0x'])
 rd_sample_app_env.AppendUnique(LIBPATH = [env.get('BUILD_DIR')])
 rd_sample_app_env.AppendUnique(RPATH = [env.get('BUILD_DIR')])
 rd_sample_app_env.PrependUnique(LIBS = ['resource_directory', 'oc', 'octbstack'])
index d82b5f5..f02d7d3 100644 (file)
@@ -93,8 +93,8 @@ client_src = [
 ResourceClientsdk_static = resourceClient_env.StaticLibrary('rcs_client', client_src)
 ResourceClientsdk_shared = resourceClient_env.SharedLibrary('rcs_client', client_src)
 
-resourceClient_env.InstallTarget([ResourceClientsdk_static,ResourceClientsdk_shared], 'librcs_client')
-resourceClient_env.UserInstallTargetLib([ResourceClientsdk_static,ResourceClientsdk_shared], 'librcs_client')
+resourceClient_env.InstallTarget([ResourceClientsdk_static,ResourceClientsdk_shared], 'rcs_client')
+resourceClient_env.UserInstallTargetLib([ResourceClientsdk_static,ResourceClientsdk_shared], 'rcs_client')
 resourceClient_env.UserInstallTargetHeader('include/RCSAddress.h', 'service/resource-encapsulation', 'RCSAddress.h')
 resourceClient_env.UserInstallTargetHeader('include/RCSDiscoveryManager.h', 'service/resource-encapsulation', 'RCSDiscoveryManager.h')
 resourceClient_env.UserInstallTargetHeader('include/RCSRemoteResourceObject.h', 'service/resource-encapsulation', 'RCSRemoteResourceObject.h')
@@ -119,4 +119,4 @@ if target_os == 'linux':
     SConscript('src/resourceBroker/unittest/SConscript')
 
 if target_os == 'android':
-    SConscript('android/SConscript')
\ No newline at end of file
+    SConscript('android/SConscript')
index 6e02574..1b92f13 100644 (file)
@@ -88,8 +88,8 @@ if target_os in ['tizen','android'] :
 else :
     resourcehostingsdk = resourcehosting_env.StaticLibrary('resource_hosting', resourcehosting_src)
 
-resourcehosting_env.InstallTarget(resourcehostingsdk, 'libresource_hosting')
-resourcehosting_env.UserInstallTargetLib(resourcehostingsdk, 'libresource_hosting')
+resourcehosting_env.InstallTarget(resourcehostingsdk, 'resource_hosting')
+resourcehosting_env.UserInstallTargetLib(resourcehostingsdk, 'resource_hosting')
 resourcehosting_env.UserInstallTargetHeader('include/Hosting.h',\
        'service/resource-hosting', 'Hosting.h')
 
index 1dfd837..163c58b 100644 (file)
@@ -94,6 +94,9 @@ elif target_os == 'ios':
 elif target_os == 'darwin':
        lib_env.AppendUnique(CPPPATH = ['/usr/local/include'])
        lib_env.AppendUnique(LIBPATH = ['/usr/local/lib'])
+elif target_os == 'windows':
+       boost_path = os.path.join(src_dir,'extlibs','boost')
+       lib_env.AppendUnique(CPPPATH = [boost_path])
 
 Import('env')
 lib_env.AppendUnique(LIBPATH = env.get('BUILD_DIR'))
index 5ec0bad..1a429f6 100644 (file)
@@ -43,7 +43,11 @@ def run_test(env, xml_file, test):
 
     test_cmd = os.path.join(build_dir, test)
 
-    if xml_file:
+    have_valgrind = False
+    if env.get('TARGET_OS') not in ['windows']:
+        have_valgrind = True
+
+    if xml_file and have_valgrind:
         # Environment variables to be made available during the
         # Valgrind run.
         valgrind_environment = ''