SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -Werror")
SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -Wno-unused-function -Wno-sign-compare")
SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden")
-SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -std=c++17")
+SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -std=c++14")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS}")
SET(CMAKE_EXE_LINKER_FLAGS "-static-libstdc++ -static-libgcc")
SET(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "")
});
stream << NLine(1);
}
+
} // namespace tidl
#include <unistd.h>
#include <ctime>
-#include <filesystem>
#include <vector>
namespace tidl {
JavaCionDataGen::JavaCionDataGen(
- std::shared_ptr<Document> doc) : Generator(doc) {
+ std::shared_ptr<Document> doc) : JavaCionGeneratorBase(doc) {
}
void JavaCionDataGen::OnInitGen(std::ofstream& stream) {
- std::string fname = "./java/org/tizen/gen/" + FileName + "/data";
- if (access(fname.c_str(), F_OK) != 0) {
- if (!std::filesystem::create_directories(fname)) {
- std::cout << "fail to create folder " << fname << std::endl;
- return;
- }
- }
+ std::string fname = MakeDir(FileName, "/data");
+ if (fname.empty())
+ return;
stream.open(fname + "/ReceivedPayloadInfo.java");
stream << "package org.tizen.gen." << FileName + ".data;" << NLine(2);
#include "idlc/ast/type.h"
#include "idlc/ast/structure.h"
-#include "idlc/gen/generator.h"
+#include "idlc/gen_cion/java_cion_gen_base.h"
namespace tidl {
-class JavaCionDataGen : public Generator {
+class JavaCionDataGen : public JavaCionGeneratorBase {
public:
explicit JavaCionDataGen(std::shared_ptr<Document> doc);
virtual ~JavaCionDataGen() = default;
#include "idlc/gen_cion/java_cion_gen_base.h"
+#include <sys/stat.h>
+#include <unistd.h>
+
#include <ctime>
#include <vector>
return t;
}
+std::string JavaCionGeneratorBase::MakeDir(const std::string& file_name,
+ const std::string& opt) {
+ std::string fname = "./java/org/tizen/gen/" + file_name + opt;
+ std::string name = "./java/org/tizen/gen/" + file_name;
+ if (access(fname.c_str(), F_OK) != 0) {
+ mkdir("./java", (S_IRWXU | S_IRGRP | S_IXGRP | S_ISGID | S_IROTH | S_IXOTH));
+ mkdir("./java/org", (S_IRWXU | S_IRGRP | S_IXGRP | S_ISGID | S_IROTH | S_IXOTH));
+ mkdir("./java/org/tizen", (S_IRWXU | S_IRGRP | S_IXGRP | S_ISGID | S_IROTH | S_IXOTH));
+ mkdir("./java/org/tizen/gen", (S_IRWXU | S_IRGRP | S_IXGRP | S_ISGID | S_IROTH | S_IXOTH));
+ mkdir(name.c_str(), (S_IRWXU | S_IRGRP | S_IXGRP | S_ISGID | S_IROTH | S_IXOTH));
+ int r = mkdir(fname.c_str(), (S_IRWXU | S_IRGRP | S_IXGRP | S_ISGID | S_IROTH | S_IXOTH));
+
+ if (r < 0) {
+ std::cout << "fail to create folder " << fname << std::endl;
+ return "";
+ }
+ }
+
+ return fname;
+}
+
} // namespace tidl
std::string Tab(int cnt);
std::string NLine(int cnt);
+ std::string MakeDir(const std::string& file_name, const std::string& opt);
protected:
const int TAB_SIZE = 4;
#include <unistd.h>
#include <ctime>
-#include <filesystem>
#include <vector>
namespace tidl {
}
void JavaCionInterfaceGen::OnInitGen(std::ofstream& stream) {
- std::string fname = "./java/org/tizen/gen/" + FileName + "/interfaces";
- if (access(fname.c_str(), F_OK) != 0) {
- if (!std::filesystem::create_directories(fname)) {
- std::cout << "fail to create folder " << fname << std::endl;
- return;
- }
- }
+ std::string fname = MakeDir(FileName, "/interfaces");
+ if (fname.empty())
+ return;
stream.open(fname + "/ProxyDelegator.java");
stream << "package org.tizen.gen." << FileName + ".interfaces;" << NLine(1);
#include <sys/stat.h>
#include <unistd.h>
-#include <filesystem>
#include <vector>
namespace tidl {
: JavaCionGeneratorBase(doc) {}
void JavaCionProxyGen::OnInitGen(std::ofstream& stream) {
- std::string fname = "./java/org/tizen/gen/" + FileName + "/viewmodel";
- if (access(fname.c_str(), F_OK) != 0) {
- if (!std::filesystem::create_directories(fname)) {
- std::cout << "fail to create folder " << fname << std::endl;
- return;
- }
- }
+ std::string fname = MakeDir(FileName, "/viewmodel");
+ if (fname.empty())
+ return;
for (auto& i : GetDocument().GetBlocks()) {
if (i->GetType() != Block::TYPE_INTERFACE)
#include <unistd.h>
#include <ctime>
-#include <filesystem>
#include <vector>
namespace tidl {
}
void JavaCionProxyRepoGen::OnInitGen(std::ofstream& stream) {
- std::string fname = "./java/org/tizen/gen/" + FileName + "/data";
- if (access(fname.c_str(), F_OK) != 0) {
- if (!std::filesystem::create_directories(fname)) {
- std::cout << "fail to create folder " << fname << std::endl;
- return;
- }
- }
+ std::string fname = MakeDir(FileName, "/data");
+ if (fname.empty())
+ return;
for (auto& i : GetDocument().GetBlocks()) {
if (i->GetType() != Block::TYPE_INTERFACE)
#include <unistd.h>
#include <ctime>
-#include <filesystem>
#include <vector>
namespace tidl {
}
void JavaCionStructureGen::OnInitGen(std::ofstream& stream) {
- std::string fname = "./java/org/tizen/gen/" + FileName + "/data";
- if (access(fname.c_str(), F_OK) != 0) {
- if (!std::filesystem::create_directories(fname)) {
- std::cout << "fail to create folder " << fname << std::endl;
- return;
- }
- }
+ std::string fname = MakeDir(FileName, "/data");
+ if (fname.empty())
+ return;
for (auto& i : GetDocument().GetBlocks()) {
if (i->GetType() != Block::TYPE_STRUCTURE)
#include <unistd.h>
#include <ctime>
-#include <filesystem>
#include <vector>
namespace tidl {
}
void JavaCionStubBaseServiceGen::OnInitGen(std::ofstream& stream) {
- std::string fname = "./java/org/tizen/gen/" + FileName + "/interfaces";
- if (access(fname.c_str(), F_OK) != 0) {
- if (!std::filesystem::create_directories(fname)) {
- std::cout << "fail to create folder " << fname << std::endl;
- return;
- }
- }
+ std::string fname = MakeDir(FileName, "/interfaces");
+ if (fname.empty())
+ return;
for (auto& i : GetDocument().GetBlocks()) {
if (i->GetType() != Block::TYPE_INTERFACE)
#include <sys/stat.h>
#include <unistd.h>
-#include <filesystem>
#include <vector>
namespace tidl {
: JavaCionGeneratorBase(doc) {}
void JavaCionStubGen::OnInitGen(std::ofstream& stream) {
- std::string fname = "./java/org/tizen/gen/" + FileName + "/viewmodel";
- if (access(fname.c_str(), F_OK) != 0) {
- if (!std::filesystem::create_directories(fname)) {
- std::cout << "fail to create folder " << fname << std::endl;
- return;
- }
- }
+ std::string fname = MakeDir(FileName, "/viewmodel");
+ if (fname.empty())
+ return;
for (auto& i : GetDocument().GetBlocks()) {
if (i->GetType() != Block::TYPE_INTERFACE)
#include <unistd.h>
#include <ctime>
-#include <filesystem>
#include <vector>
namespace tidl {
}
void JavaCionStubRepoGen::OnInitGen(std::ofstream& stream) {
- std::string fname = "./java/org/tizen/gen/" + FileName + "/data";
- if (access(fname.c_str(), F_OK) != 0) {
- if (!std::filesystem::create_directories(fname)) {
- std::cout << "fail to create folder " << fname << std::endl;
- return;
- }
- }
+ std::string fname = MakeDir(FileName, "/data");
+ if (fname.empty())
+ return;
for (auto& i : GetDocument().GetBlocks()) {
if (i->GetType() != Block::TYPE_INTERFACE)
#include <unistd.h>
#include <ctime>
-#include <filesystem>
#include <vector>
namespace tidl {
JavaCionUtilityGen::JavaCionUtilityGen(
- std::shared_ptr<Document> doc) : Generator(doc) {
+ std::shared_ptr<Document> doc) : JavaCionGeneratorBase(doc) {
}
void JavaCionUtilityGen::OnInitGen(std::ofstream& stream) {
- std::string fname = "./java/org/tizen/gen/" + FileName + "/utility";
- if (access(fname.c_str(), F_OK) != 0) {
- if (!std::filesystem::create_directories(fname)) {
- std::cout << "fail to create folder " << fname << std::endl;
- return;
- }
- }
+ std::string fname = MakeDir(FileName, "/utility");
+ if (fname.empty())
+ return;
stream.open(fname + "/Out.java");
stream << "package org.tizen.gen." << FileName << ".utility;" << NLine(2);
#include "idlc/ast/type.h"
#include "idlc/ast/structure.h"
-#include "idlc/gen/generator.h"
+#include "idlc/gen_cion/java_cion_gen_base.h"
namespace tidl {
-class JavaCionUtilityGen : public Generator {
+class JavaCionUtilityGen : public JavaCionGeneratorBase {
public:
explicit JavaCionUtilityGen(std::shared_ptr<Document> doc);
virtual ~JavaCionUtilityGen() = default;