11cmake_minimum_required (VERSION 2.8.9)
22project (libyang C)
33
4+ include (GNUInstallDirs)
5+
46set (LIBYANG_DESCRIPTION "libyang is YANG data modelling language parser and toolkit written (and providing API) in C." )
57
68# set version
79set (LIBYANG_MAJOR_VERSION 0)
8- set (LIBYANG_MINOR_VERSION 10 )
9- set (LIBYANG_MICRO_VERSION 239 )
10+ set (LIBYANG_MINOR_VERSION 11 )
11+ set (LIBYANG_MICRO_VERSION 43 )
1012set (LIBYANG_VERSION ${LIBYANG_MAJOR_VERSION} .${LIBYANG_MINOR_VERSION} .${LIBYANG_MICRO_VERSION} )
1113set (LIBYANG_SOVERSION ${LIBYANG_MAJOR_VERSION} .${LIBYANG_MINOR_VERSION} )
1214configure_file (${PROJECT_SOURCE_DIR} /src/libyang.h.in ${PROJECT_SOURCE_DIR} /src/libyang.h)
3234 add_custom_target (bison
3335 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} /src
3436 COMMAND bison -Wno-other -l -o parser_yang_bis.c --defines=parser_yang_bis.h yang.y
35- COMMAND flex -L -o parser_yang_lex.c --header-file=parser_yang_lex.h yang.l
37+ COMMAND flex -8 - L -o parser_yang_lex.c --header-file=parser_yang_lex.h yang.l
3638 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
3739 )
3840endif ()
@@ -42,14 +44,6 @@ if(NOT UNIX)
4244 message (FATAL_ERROR "Only *nix like systems are supported." )
4345endif ()
4446
45- if (NOT LIB_INSTALL_DIR)
46- set (LIB_INSTALL_DIR lib)
47- endif ()
48-
49- if (NOT INCLUDE_INSTALL_DIR)
50- set (INCLUDE_INSTALL_DIR include /libyang)
51- endif ()
52-
5347# set default build type if not specified by user
5448if (NOT CMAKE_BUILD_TYPE )
5549 set (CMAKE_BUILD_TYPE debug)
@@ -129,21 +123,21 @@ find_package(PCRE REQUIRED)
129123include_directories (${PCRE_INCLUDE_DIRS} )
130124target_link_libraries (yang ${PCRE_LIBRARIES} )
131125
132- install (TARGETS yang DESTINATION ${LIB_INSTALL_DIR } )
133- install (FILES ${headers} DESTINATION ${INCLUDE_INSTALL_DIR} )
126+ install (TARGETS yang DESTINATION ${CMAKE_INSTALL_LIBDIR } )
127+ install (FILES ${headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /libyang )
134128
135129find_package (PkgConfig)
136130if (PKG_CONFIG_FOUND)
137131 # generate and install pkg-config file
138132 configure_file ("libyang.pc.in" "libyang.pc" @ONLY)
139- install (FILES "${CMAKE_CURRENT_BINARY_DIR} /libyang.pc" DESTINATION "${CMAKE_INSTALL_PREFIX} / ${LIB_INSTALL_DIR } /pkgconfig" )
133+ install (FILES "${CMAKE_CURRENT_BINARY_DIR} /libyang.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR } /pkgconfig" )
140134 # check that pkg-config includes the used path
141135 execute_process (COMMAND ${PKG_CONFIG_EXECUTABLE} --variable pc_path pkg-config RESULT_VARIABLE RETURN OUTPUT_VARIABLE PC_PATH ERROR_QUIET)
142136 if (RETURN EQUAL 0)
143- string (REGEX MATCH "${CMAKE_INSTALL_PREFIX} /${LIB_INSTALL_DIR } /pkgconfig" SUBSTR "${PC_PATH} " )
137+ string (REGEX MATCH "${CMAKE_INSTALL_PREFIX} /${CMAKE_INSTALL_LIBDIR } /pkgconfig" SUBSTR "${PC_PATH} " )
144138 string (LENGTH "${SUBSTR} " SUBSTR_LEN)
145139 if (SUBSTR_LEN EQUAL 0)
146- message (WARNING "pkg-config will not detect the new package after installation, adjust PKG_CONFIG_PATH using \" export PKG_CONFIG_PATH=\$ {PKG_CONFIG_PATH}:${CMAKE_INSTALL_PREFIX} /${LIB_INSTALL_DIR } /pkgconfig\" ." )
140+ message (WARNING "pkg-config will not detect the new package after installation, adjust PKG_CONFIG_PATH using \" export PKG_CONFIG_PATH=\$ {PKG_CONFIG_PATH}:${CMAKE_INSTALL_PREFIX} /${CMAKE_INSTALL_LIBDIR } /pkgconfig\" ." )
147141 endif ()
148142 endif ()
149143endif ()
@@ -167,6 +161,8 @@ add_custom_target(cclean
167161
168162add_executable (yanglint ${lintsrc} )
169163target_link_libraries (yanglint yang)
164+ install (TARGETS yanglint DESTINATION ${CMAKE_INSTALL_BINDIR} )
165+ install (FILES ${PROJECT_SOURCE_DIR} /tools/lint/yanglint.1 DESTINATION ${CMAKE_INSTALL_MANDIR} /man1)
170166
171167add_executable (yang2yin ${yang2yinsrc} )
172168
0 commit comments