summaryrefslogtreecommitdiffstats
path: root/nsframework/framework_unified/client/NS_Utility
diff options
context:
space:
mode:
Diffstat (limited to 'nsframework/framework_unified/client/NS_Utility')
-rw-r--r--nsframework/framework_unified/client/NS_Utility/Makefile19
-rw-r--r--nsframework/framework_unified/client/NS_Utility/buildversioncheck/Makefile21
-rw-r--r--nsframework/framework_unified/client/NS_Utility/buildversioncheck/library/Makefile62
-rw-r--r--nsframework/framework_unified/client/NS_Utility/buildversioncheck/library/src/NS_BuildVersionCheck.cpp85
4 files changed, 187 insertions, 0 deletions
diff --git a/nsframework/framework_unified/client/NS_Utility/Makefile b/nsframework/framework_unified/client/NS_Utility/Makefile
new file mode 100644
index 00000000..2f4dfef6
--- /dev/null
+++ b/nsframework/framework_unified/client/NS_Utility/Makefile
@@ -0,0 +1,19 @@
+#
+# @copyright Copyright (c) 2017-2020 TOYOTA MOTOR CORPORATION.
+#
+# 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.
+#
+
+SUBDIRS = buildversioncheck
+
+include ../../../native_service.mk
diff --git a/nsframework/framework_unified/client/NS_Utility/buildversioncheck/Makefile b/nsframework/framework_unified/client/NS_Utility/buildversioncheck/Makefile
new file mode 100644
index 00000000..03ca87c1
--- /dev/null
+++ b/nsframework/framework_unified/client/NS_Utility/buildversioncheck/Makefile
@@ -0,0 +1,21 @@
+#
+# @copyright Copyright (c) 2017-2020 TOYOTA MOTOR CORPORATION.
+#
+# 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.
+#
+
+SUBDIRS := library
+
+
+
+include ../../../../native_service.mk
diff --git a/nsframework/framework_unified/client/NS_Utility/buildversioncheck/library/Makefile b/nsframework/framework_unified/client/NS_Utility/buildversioncheck/library/Makefile
new file mode 100644
index 00000000..e1b0a6d5
--- /dev/null
+++ b/nsframework/framework_unified/client/NS_Utility/buildversioncheck/library/Makefile
@@ -0,0 +1,62 @@
+#
+# @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
+#
+# 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.
+#
+
+######### installed program #############
+
+
+######### installed library(*.a) #############
+
+######### installed shared library(*.so) #############
+INST_SHLIBS = libNS_BuildVersionCheck
+
+######### install headers(*.h) #############
+
+######### compiled sources #############
+libNS_BuildVersionCheck_SRCS = NS_BuildVersionCheck.cpp
+
+######### add source path #############
+VPATH += ./src
+
+######### add include path #############
+CPPFLAGS += -I./../../../include/
+
+######### add compile option #############
+CPPFLAGS += -DLINUX -fdata-sections -ffunction-sections -DFLG_LEGACY
+
+CPPFLAGS += -DFRAMEWORKUNIFIEDLOGOPTIONS=0x08 -DFRAMEWORKUNIFIEDLOGAPPZONES=31,30,29,28,27,26,9,8,3
+CPPFLAGS += -DBUILD_VERSION=PastModel002_stable_c1_I20130701-0000
+
+CPPFLAGS += -Wl,--no-undefined
+CPPFLAGS += -Werror=implicit-function-declaration
+CPPFLAGS += -Werror=format-security
+
+CPPFLAGS += -Wconversion
+CPPFLAGS += -Wint-to-pointer-cast
+CPPFLAGS += -Wpointer-arith
+CPPFLAGS += -Wformat
+
+LDFLAGS += -Wl,--no-as-needed
+LDFLAGS += -g -Wl,--gc-sections -shared
+
+LDLIBS += -Wl,-Bdynamic -lstdc++
+
+######### linked library #############
+
+######### linked library (dynamic) #############
+
+######### add library path #############
+
+include ../../../../../native_service.mk
diff --git a/nsframework/framework_unified/client/NS_Utility/buildversioncheck/library/src/NS_BuildVersionCheck.cpp b/nsframework/framework_unified/client/NS_Utility/buildversioncheck/library/src/NS_BuildVersionCheck.cpp
new file mode 100644
index 00000000..633797bf
--- /dev/null
+++ b/nsframework/framework_unified/client/NS_Utility/buildversioncheck/library/src/NS_BuildVersionCheck.cpp
@@ -0,0 +1,85 @@
+/*
+ * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
+ *
+ * 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.
+ */
+
+///////////////////////////////////////////////////////////////////////////////
+/// \ingroup tag_NSFramework
+/// \brief
+///
+///
+///
+///////////////////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////
+// Interfaces
+///////////////////////////////////////////////////////////////////////////////
+#include <native_service/ns_buildversioncheck.hpp>
+#include <cstdlib>
+#include <cstring>
+
+namespace {
+
+namespace frameworkunified_ns_bvc {
+
+const UI_32 kMaxBuildVersionLength = 32;
+PCSTR g_build_version_env_var_name = "BUILD_VERSION";
+PCSTR g_build_version = _BUILD_VERSION; // Should be defined when library is built
+
+bool isEmptyString(PCSTR str) { // NOLINT (readability/nolint)
+ return 0 == std::strncmp("", str, 1);
+}
+
+} // namespace frameworkunified_ns_bvc
+
+} // namespace
+
+namespace frameworkunified {
+
+namespace ns {
+
+namespace utility {
+
+BOOL buildVersionsMatch(PCSTR build_version) { // NOLINT (readability/nolint)
+ PCSTR env_build_version = getEnvironmentBuildVersion();
+ PCSTR lib_build_version = getLibraryBuildVersion();
+ return 0 == std::strncmp(env_build_version, build_version, frameworkunified_ns_bvc::kMaxBuildVersionLength) &&
+ 0 == std::strncmp(lib_build_version, build_version, frameworkunified_ns_bvc::kMaxBuildVersionLength) &&
+ !frameworkunified_ns_bvc::isEmptyString(build_version) &&
+ !frameworkunified_ns_bvc::isEmptyString(env_build_version) &&
+ !frameworkunified_ns_bvc::isEmptyString(lib_build_version);
+}
+
+PCSTR getEnvironmentBuildVersion() { // NOLINT (readability/nolint)
+ static PCSTR env_version = std::getenv(frameworkunified_ns_bvc::g_build_version_env_var_name);
+ return env_version != NULL ? env_version : "";
+}
+
+PCSTR getLibraryBuildVersion() { // NOLINT (readability/nolint)
+ return frameworkunified_ns_bvc::g_build_version;
+}
+
+namespace utility_private {
+
+PCSTR niceBuildVersion(PCSTR build_version) { // NOLINT (readability/nolint)
+ return frameworkunified_ns_bvc::isEmptyString(build_version) ? "<Not defined>" : build_version;
+}
+
+} // namespace utility_private
+
+} // namespace utility
+
+} // namespace ns
+
+} // namespace frameworkunified