From: Hwankyu Jhun Date: Tue, 12 Dec 2017 07:12:05 +0000 (+0900) Subject: Add language option X-Git-Tag: accepted/tizen/unified/20180302.061550~44 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=cca12d3aa3d4e157963a8ba5249f41a49dcbe2d4;p=platform%2Fcore%2Fappfw%2Ftidl.git Add language option +-----------------------------------------------------------+ | Usage: | | tidlc [OPTION...] | | | | Options: | | -p, --proxy Generate proxy code | | -s, --stub Generate stub code | | | | Additional Options: | | -l, --language=LANGUAGE Select generating language | | -i, --input=INPUT a tidl interface file. | | -o, --output=OUTPUT The generated interface file. | +-----------------------------------------------------------+ Change-Id: I245d41636ada7409270054d971c9b97050391b94 Signed-off-by: Hwankyu Jhun --- diff --git a/idlc/CMakeLists.txt b/idlc/CMakeLists.txt index 7628085..8b56ec4 100644 --- a/idlc/CMakeLists.txt +++ b/idlc/CMakeLists.txt @@ -1,9 +1,16 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8) PROJECT(TIDLC CXX) +INCLUDE(FindPkgConfig) +PKG_CHECK_MODULES(LIBPKGS REQUIRED glib-2.0) + FIND_PACKAGE(BISON REQUIRED) FIND_PACKAGE(FLEX REQUIRED) +FOREACH(flag ${LIBPKGS_CFLAGS}) + SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") +ENDFOREACH(flag) + SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -Wno-unused-function -Wno-sign-compare") SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -Wl,-zdefs" ) SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden") @@ -36,5 +43,6 @@ bison_target(TIDLC ${CMAKE_CURRENT_SOURCE_DIR}/tidlc.yy ${CMAKE_CURRENT_SOURCE_D SET(TILDC_deps ${FLEX_TIDLC_OUTPUTS}) ADD_EXECUTABLE(tidlc ${BISON_TIDLC_OUTPUTS} ${FLEX_TIDLC_OUTPUTS} ${SOURCES}) +TARGET_LINK_LIBRARIES(tidlc ${LIBPKGS_LDFLAGS}) INSTALL(TARGETS tidlc DESTINATION bin) diff --git a/idlc/main.cc b/idlc/main.cc index 8a96c6b..04ff390 100644 --- a/idlc/main.cc +++ b/idlc/main.cc @@ -14,8 +14,11 @@ * limitations under the License. */ +#include + #include #include +#include #include "idlc/parser.h" #include "idlc/proxy_gen.h" @@ -23,53 +26,131 @@ namespace { -enum class Option { - NONE = 0, - PROXY, - STUB +class Options { + public: + ~Options() = default; + + static std::unique_ptr Parse(int argc, char** argv); + bool IsProxy() const { return isProxy_; } + std::string GetLanguage() const { return language_; } + std::string GetInput() const { return input_; } + std::string GetOutput() const { return output_; } + + private: + enum Cmd { + CMD_PROXY, + CMD_STUB, + CMD_MAX + }; + + enum Opt { + OPT_LANGUAGE, + OPT_INPUT, + OPT_OUTPUT, + OPT_MAX + }; + + void PrintUsage(); + + private: + bool isProxy_; + std::string language_; + std::string input_; + std::string output_; + std::string help_; }; -void PrintUsage() { - std::cout << "usage: tidlc