Skip to content

Commit f335c05

Browse files
Sergey Ryabininamit-schreiber-firebolt
Sergey Ryabinin
authored andcommitted
Fix build on different platforms
1 parent ac16a9a commit f335c05

File tree

6 files changed

+42
-52
lines changed

6 files changed

+42
-52
lines changed

aws-cpp-sdk-core-tests/aws/config/ClientConfigurationDefaultsTest.cpp

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
*/
55

66
#include <aws/external/gtest.h>
7+
#include <aws/core/platform/Environment.h>
78
#include <aws/testing/platform/PlatformTesting.h>
89

910
#include <aws/core/config/defaults/ClientConfigurationDefaults.h>
@@ -12,36 +13,28 @@ class ClientConfigurationDefaultsTest : public ::testing::Test
1213
{
1314

1415
public:
15-
// env vars tests set and original presence and value
16-
std::unordered_map<std::string,
17-
std::pair<bool, std::string>> originalEnvVars;
18-
const std::vector<std::string> ENV_VARS_TO_RESTORE =
16+
// original env vars and their value
17+
std::unordered_map<Aws::String, Aws::String> originalEnvVars;
18+
const std::vector<Aws::String> ENV_VARS_TO_RESTORE =
1919
{"AWS_EC2_METADATA_DISABLED", "AWS_DEFAULTS_MODE", "AWS_EXECUTION_ENV",
2020
"AWS_REGION", "AWS_DEFAULT_REGION"};
2121

2222
virtual void SetUp()
2323
{
24-
for (const std::string& origEnvVarName : ENV_VARS_TO_RESTORE)
24+
for (const Aws::String& origEnvVarName : ENV_VARS_TO_RESTORE)
2525
{
26-
const char* origEnvVarValue = getenv(origEnvVarName.c_str());
27-
if (origEnvVarValue)
28-
{
29-
originalEnvVars[origEnvVarName] = std::make_pair(true, std::string(origEnvVarValue));
30-
}
31-
else
32-
{
33-
originalEnvVars[origEnvVarName] = std::make_pair(false, std::string());
34-
}
26+
const Aws::String& origEnvVarValue = Aws::Environment::GetEnv(origEnvVarName.c_str());
27+
originalEnvVars[origEnvVarName] = origEnvVarValue;
3528
}
3629
}
3730

3831
virtual void TearDown()
3932
{
4033
for (const auto& origEnvVar : originalEnvVars)
4134
{
42-
if(origEnvVar.second.first)
35+
if(!origEnvVar.second.empty())
4336
{
44-
Aws::Environment::SetEnv(origEnvVar.first.c_str(), origEnvVar.second.second.c_str(), true);
37+
Aws::Environment::SetEnv(origEnvVar.first.c_str(), origEnvVar.second.c_str(), true);
4538
}
4639
else
4740
{

aws-cpp-sdk-core/include/aws/core/config/defaults/ClientConfigurationDefaults.h

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ namespace Aws
2727
* @param hasEc2MetadataRegion, if ec2 metadata region has been already queried
2828
* @param ec2MetadataRegion, a region resolved by EC2 Instance Metadata service
2929
*/
30-
void SetSmartDefaultsConfigurationParameters(Aws::Client::ClientConfiguration& clientConfig,
31-
const Aws::String& defaultMode,
32-
bool hasEc2MetadataRegion,
33-
const Aws::String& ec2MetadataRegion);
30+
AWS_CORE_API void SetSmartDefaultsConfigurationParameters(Aws::Client::ClientConfiguration& clientConfig,
31+
const Aws::String& defaultMode,
32+
bool hasEc2MetadataRegion,
33+
const Aws::String& ec2MetadataRegion);
3434

3535
/**
3636
* Resolve the name of an actual mode for a default mode "auto"
@@ -45,16 +45,16 @@ namespace Aws
4545
* might introduce latency. Therefore we recommend choosing an explicit
4646
* defaults_mode instead if startup latency is critical to your application.
4747
*/
48-
const char* ResolveAutoClientConfiguration(const Aws::Client::ClientConfiguration& clientConfig,
49-
const Aws::String& ec2MetadataRegion);
48+
AWS_CORE_API const char* ResolveAutoClientConfiguration(const Aws::Client::ClientConfiguration& clientConfig,
49+
const Aws::String& ec2MetadataRegion);
5050

5151
/**
5252
* Default mode "legacy"
5353
*
5454
* The LEGACY mode provides default settings that vary per SDK and were used prior
5555
* to establishment of defaults_mode.
5656
*/
57-
void SetLegacyClientConfiguration(Aws::Client::ClientConfiguration& clientConfig);
57+
AWS_CORE_API void SetLegacyClientConfiguration(Aws::Client::ClientConfiguration& clientConfig);
5858

5959
/**
6060
* Default mode "standard"
@@ -66,7 +66,7 @@ namespace Aws
6666
* practices may evolve. As a result, it is encouraged to perform tests when
6767
* upgrading the SDK.
6868
*/
69-
void SetStandardClientConfiguration(Aws::Client::ClientConfiguration& clientConfig);
69+
AWS_CORE_API void SetStandardClientConfiguration(Aws::Client::ClientConfiguration& clientConfig);
7070

7171
/**
7272
* Default mode "in-region"
@@ -79,7 +79,7 @@ namespace Aws
7979
* practices may evolve. As a result, it is encouraged to perform tests when
8080
* upgrading the SDK.
8181
*/
82-
void SetInRegionClientConfiguration(Aws::Client::ClientConfiguration& clientConfig);
82+
AWS_CORE_API void SetInRegionClientConfiguration(Aws::Client::ClientConfiguration& clientConfig);
8383

8484
/**
8585
* Default mode "cross-region"
@@ -91,7 +91,7 @@ namespace Aws
9191
* practices may evolve. As a result, it is encouraged to perform tests when
9292
* upgrading the SDK.
9393
*/
94-
void SetCrossRegionClientConfiguration(Aws::Client::ClientConfiguration& clientConfig);
94+
AWS_CORE_API void SetCrossRegionClientConfiguration(Aws::Client::ClientConfiguration& clientConfig);
9595

9696
/**
9797
* Default mode "mobile"
@@ -103,7 +103,7 @@ namespace Aws
103103
* practices may evolve. As a result, it is encouraged to perform tests when
104104
* upgrading the SDK.
105105
*/
106-
void SetMobileClientConfiguration(Aws::Client::ClientConfiguration& clientConfig);
106+
AWS_CORE_API void SetMobileClientConfiguration(Aws::Client::ClientConfiguration& clientConfig);
107107

108108
/**
109109
* Internal helper function to resolve smart defaults mode if not provided
@@ -114,11 +114,11 @@ namespace Aws
114114
* @param hasEc2MetadataRegion, if ec2 metadata region has been already queried
115115
* @param ec2MetadataRegion, a region resolved by EC2 Instance Metadata service
116116
*/
117-
Aws::String ResolveDefaultModeName(const Aws::Client::ClientConfiguration& clientConfig,
118-
Aws::String requestedDefaultMode,
119-
const Aws::String& configFileDefaultMode,
120-
bool hasEc2MetadataRegion,
121-
Aws::String ec2MetadataRegion);
117+
AWS_CORE_API Aws::String ResolveDefaultModeName(const Aws::Client::ClientConfiguration& clientConfig,
118+
Aws::String requestedDefaultMode,
119+
const Aws::String& configFileDefaultMode,
120+
bool hasEc2MetadataRegion,
121+
Aws::String ec2MetadataRegion);
122122
} //namespace Defaults
123123
} //namespace Config
124124
} //namespace Aws

aws-cpp-sdk-core/source/config/defaults/ClientConfigurationDefaults.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@
1111

1212
#include <aws/common/platform.h> // for AWS_OS_IOS macro
1313
#include <aws/core/config/defaults/ClientConfigurationDefaults.h>
14+
#include <aws/core/config/AWSProfileConfigLoader.h>
1415
#include <aws/core/client/ClientConfiguration.h>
16+
#include <aws/core/internal/AWSHttpResourceClient.h>
1517
#include <aws/core/platform/Environment.h>
1618
#include <aws/core/utils/StringUtils.h>
1719
#include <aws/core/utils/logging/LogMacros.h>

cmake/sdks.cmake

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -70,20 +70,13 @@ else()
7070
endif()
7171

7272
# SDK_BUILD_LIST is now a list of present SDKs that can be processed unconditionally
73-
if(ADD_CUSTOM_CLIENTS OR REGENERATE_CLIENTS)
73+
if(ADD_CUSTOM_CLIENTS OR REGENERATE_CLIENTS OR REGENERATE_DEFAULTS)
7474
execute_process(
7575
COMMAND ${PYTHON_CMD} scripts/generate_sdks.py --prepareTools
7676
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
7777
)
7878
endif()
7979

80-
if(REGENERATE_DEFAULTS)
81-
execute_process(
82-
COMMAND ${PYTHON_CMD} scripts/generate_defaults.py --prepareTools
83-
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
84-
)
85-
endif()
86-
8780

8881
if(ENABLE_VIRTUAL_OPERATIONS) # it could be set to 0/1 or ON/OFF
8982
set(ENABLE_VIRTUAL_OPERATIONS_ARG "--enableVirtualOperations")

code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/DefaultsHeader.vm

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ namespace Aws
2727
* @param hasEc2MetadataRegion, if ec2 metadata region has been already queried
2828
* @param ec2MetadataRegion, a region resolved by EC2 Instance Metadata service
2929
*/
30-
void SetSmartDefaultsConfigurationParameters(Aws::Client::ClientConfiguration& clientConfig,
31-
const Aws::String& defaultMode,
32-
bool hasEc2MetadataRegion,
33-
const Aws::String& ec2MetadataRegion);
30+
AWS_CORE_API void SetSmartDefaultsConfigurationParameters(Aws::Client::ClientConfiguration& clientConfig,
31+
const Aws::String& defaultMode,
32+
bool hasEc2MetadataRegion,
33+
const Aws::String& ec2MetadataRegion);
3434

3535
/**
3636
* Resolve the name of an actual mode for a default mode "auto"
@@ -43,8 +43,8 @@ namespace Aws
4343
#end
4444
#end
4545
*/
46-
const char* ResolveAutoClientConfiguration(const Aws::Client::ClientConfiguration& clientConfig,
47-
const Aws::String& ec2MetadataRegion);
46+
AWS_CORE_API const char* ResolveAutoClientConfiguration(const Aws::Client::ClientConfiguration& clientConfig,
47+
const Aws::String& ec2MetadataRegion);
4848

4949
#foreach($defaultMode in $defaultsModel.defaultsModes)
5050
#if ($defaultMode.name != "auto")
@@ -59,7 +59,7 @@ namespace Aws
5959
*#if(!$docStr.isEmpty()) #end${docStr}
6060
#end
6161
*/
62-
void Set${defaultModeNameCamel}ClientConfiguration(Aws::Client::ClientConfiguration& clientConfig);
62+
AWS_CORE_API void Set${defaultModeNameCamel}ClientConfiguration(Aws::Client::ClientConfiguration& clientConfig);
6363
#if( $foreach.hasNext )
6464

6565
#end
@@ -75,11 +75,11 @@ namespace Aws
7575
* @param hasEc2MetadataRegion, if ec2 metadata region has been already queried
7676
* @param ec2MetadataRegion, a region resolved by EC2 Instance Metadata service
7777
*/
78-
Aws::String ResolveDefaultModeName(const Aws::Client::ClientConfiguration& clientConfig,
79-
Aws::String requestedDefaultMode,
80-
const Aws::String& configFileDefaultMode,
81-
bool hasEc2MetadataRegion,
82-
Aws::String ec2MetadataRegion);
78+
AWS_CORE_API Aws::String ResolveDefaultModeName(const Aws::Client::ClientConfiguration& clientConfig,
79+
Aws::String requestedDefaultMode,
80+
const Aws::String& configFileDefaultMode,
81+
bool hasEc2MetadataRegion,
82+
Aws::String ec2MetadataRegion);
8383
} //namespace Defaults
8484
} //namespace Config
8585
} //namespace Aws

code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/DefaultsSource.vm

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@
1111
#set($defaultsNamespace = $metadata.namespace)
1212
\#include <aws/common/platform.h> // for AWS_OS_IOS macro
1313
\#include <aws/core/config/defaults/ClientConfigurationDefaults.h>
14+
\#include <aws/core/config/AWSProfileConfigLoader.h>
1415
\#include <aws/core/client/ClientConfiguration.h>
16+
\#include <aws/core/internal/AWSHttpResourceClient.h>
1517
\#include <aws/core/platform/Environment.h>
1618
\#include <aws/core/utils/StringUtils.h>
1719
\#include <aws/core/utils/logging/LogMacros.h>

0 commit comments

Comments
 (0)