@@ -7,12 +7,19 @@ set(LIBYANG_DESCRIPTION "libyang is YANG data modelling language parser and tool
77
88# set version
99set (LIBYANG_MAJOR_VERSION 0)
10- set (LIBYANG_MINOR_VERSION 11 )
11- set (LIBYANG_MICRO_VERSION 112 )
10+ set (LIBYANG_MINOR_VERSION 12 )
11+ set (LIBYANG_MICRO_VERSION 113 )
1212set (LIBYANG_VERSION ${LIBYANG_MAJOR_VERSION} .${LIBYANG_MINOR_VERSION} .${LIBYANG_MICRO_VERSION} )
1313set (LIBYANG_SOVERSION ${LIBYANG_MAJOR_VERSION} .${LIBYANG_MINOR_VERSION} )
1414configure_file (${PROJECT_SOURCE_DIR} /src/libyang.h.in ${PROJECT_SOURCE_DIR} /src/libyang.h)
1515
16+ if (PLUGINS_DIR)
17+ set (LIBYANG_EXT_PLUGINS_DIR ${PLUGINS_DIR} )
18+ else ()
19+ set (LIBYANG_EXT_PLUGINS_DIR ${CMAKE_INSTALL_PREFIX} /${CMAKE_INSTALL_LIBDIR} /libyang)
20+ endif ()
21+ configure_file (${PROJECT_SOURCE_DIR} /src/extensions_config.h.in ${PROJECT_SOURCE_DIR} /src/extensions_config.h)
22+
1623# include custom Modules
1724set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR} /CMakeModules/" )
1825
3340 configure_file (${PROJECT_SOURCE_DIR} /src/yang.y.in ${PROJECT_SOURCE_DIR} /src/yang.y)
3441 add_custom_target (bison
3542 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} /src
36- COMMAND bison -Wno-other - l -o parser_yang_bis.c --defines=parser_yang_bis.h yang.y
43+ COMMAND bison -l -o parser_yang_bis.c --defines=parser_yang_bis.h yang.y
3744 COMMAND flex -8 -L -o parser_yang_lex.c --header-file=parser_yang_lex.h yang.l
38- COMMAND ${SED_TOOL} -i 's/int yychar\;/int yychar\;\\nchar *s = NULL, *tmp_s = NULL\;\\nstruct lys_include inc \;\\nstruct lys_module *trg = NULL\;\\nstruct lys_node *tpdf_parent = NULL, *data_node = NULL\;\\nvoid *actual = NULL\;\\nstruct lys_node_uses *refine_parent = NULL\;\\nint config_inherit = 0 , actual_type = 0 \;\\nint64_t cnt_val\;\\nint read_string = read_all \;\\nvoid *yang_type = NULL\;/' parser_yang_bis.c
45+ COMMAND ${SED_TOOL} -i 's/int yychar\;/int yychar\;\\nchar *s = NULL, *tmp_s = NULL, *ext_name = NULL \;\\nstruct lys_module *trg = NULL\;\\nstruct lys_node *tpdf_parent = NULL, *data_node = NULL\;\\nstruct lys_ext_instance_complex *ext_instance = NULL\;\\nint is_ext_instance\;\\nvoid *actual = NULL\;\\nenum yytokentype backup_type , actual_type = MODULE_KEYWORD \;\\nint64_t cnt_val = 0 \;\\nint is_value = 0 \;\\nvoid *yang_type = NULL\;/' parser_yang_bis.c
3946 )
4047endif ()
4148
@@ -49,7 +56,7 @@ if(NOT CMAKE_BUILD_TYPE)
4956 set (CMAKE_BUILD_TYPE debug)
5057endif ()
5158
52- set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -fvisibility=hidden " )
59+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra" )
5360set (CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG" )
5461set (CMAKE_C_FLAGS_DEBUG "-g -O0" )
5562
@@ -78,6 +85,7 @@ set(libsrc
7885 src/parser_yang.c
7986 src/tree_schema.c
8087 src/tree_data.c
88+ src/extensions.c
8189 src/printer.c
8290 src/xpath.c
8391 src/printer_yang.c
@@ -102,14 +110,17 @@ set(headers
102110 src/libyang.h
103111 src/tree_schema.h
104112 src/tree_data.h
113+ src/extensions.h
105114 src/xml.h
106115 src/dict.h)
107116
108117# create static libyang library
109118if (STATIC )
110119 add_library (yang_static STATIC ${libsrc} )
111120 set_target_properties (yang_static PROPERTIES OUTPUT_NAME yang)
121+ set_target_properties (yang_static PROPERTIES COMPILE_FLAGS "-fvisibility=hidden" )
112122 target_link_libraries (yang_static m)
123+ target_link_libraries (yang_static ${CMAKE_DL_LIBS} )
113124 target_link_libraries (yang_static ${CMAKE_THREAD_LIBS_INIT} )
114125 target_link_libraries (yang_static ${PCRE_LIBRARIES} )
115126 install (TARGETS yang_static DESTINATION ${CMAKE_INSTALL_LIBDIR} )
@@ -119,10 +130,14 @@ set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
119130add_library (yangobj OBJECT ${libsrc} )
120131add_library (yang SHARED $<TARGET_OBJECTS:yangobj>)
121132set_target_properties (yang PROPERTIES VERSION ${LIBYANG_VERSION} SOVERSION ${LIBYANG_SOVERSION} )
133+ set_target_properties (yang PROPERTIES COMPILE_FLAGS "-fvisibility=hidden" )
122134
123135# link math
124136target_link_libraries (yang m)
125137
138+ #link dl
139+ target_link_libraries (yang ${CMAKE_DL_LIBS} )
140+
126141# find pthreads
127142set (CMAKE_THREAD_PREFER_PTHREAD TRUE )
128143find_package (Threads REQUIRED)
@@ -169,11 +184,16 @@ add_custom_target(cclean
169184 COMMAND rm -rf Makefile Doxyfile
170185 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
171186
187+ # YANG extensions plugins
188+ add_subdirectory (src/extensions)
189+
190+ # yanglint
172191add_executable (yanglint ${lintsrc} )
173192target_link_libraries (yanglint yang)
174193install (TARGETS yanglint DESTINATION ${CMAKE_INSTALL_BINDIR} )
175194install (FILES ${PROJECT_SOURCE_DIR} /tools/lint/yanglint.1 DESTINATION ${CMAKE_INSTALL_MANDIR} /man1)
176195
196+ # yang2yin
177197add_executable (yang2yin ${yang2yinsrc} )
178198
179199if (ENABLE_VALGRIND_TESTS)
0 commit comments