build CHANGE move the tools' cmake specs into a standalone CMakeLists files
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 87da8a9..b1776a2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -53,6 +53,9 @@
# Correct RPATH usage on OS X
set(CMAKE_MACOSX_RPATH TRUE)
+# keep all binaries in the build directory
+set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
+
# set version of the project
set(LIBYANG_MAJOR_VERSION 2)
set(LIBYANG_MINOR_VERSION 0)
@@ -135,17 +138,6 @@
src/xpath.c
src/validation.c)
-set(lintsrc
- tools/lint/main.c
- tools/lint/main_ni.c
- tools/lint/commands.c
- tools/lint/completion.c
- tools/lint/configuration.c
- tools/lint/linenoise/linenoise.c)
-
-set(resrc
- tools/re/main.c)
-
set(headers
src/libyang.h
src/context.h
@@ -163,6 +155,10 @@
src/tree_data.h
src/tree_schema.h)
+# source files to be covered by the 'format' target
+set(format_sources
+ compat/*
+ src/*)
#
# options
#
@@ -300,6 +296,9 @@
endif()
endif()
+# tools - yanglint, yangre
+add_subdirectory(tools)
+
# generate doxygen documentation for libyang API
libyang_doc()
@@ -310,7 +309,7 @@
# source code format
if ("${BUILD_TYPE_UPPER}" STREQUAL "DEBUG")
- source_format(src/* compat/*)
+ source_format(${format_sources})
endif()
# clean cmake cache
@@ -366,22 +365,7 @@
#
#configure_file(${PROJECT_SOURCE_DIR}/src/plugin_config.h.in ${PROJECT_BINARY_DIR}/src/plugin_config.h)
-# config file for tools
-configure_file(${PROJECT_SOURCE_DIR}/tools/config.h.in ${PROJECT_BINARY_DIR}/tools/config.h @ONLY)
-
-# yanglint
-add_executable(yanglint ${lintsrc} $<TARGET_OBJECTS:compat>)
-target_link_libraries(yanglint yang)
-install(TARGETS yanglint DESTINATION ${CMAKE_INSTALL_BINDIR})
-install(FILES ${PROJECT_SOURCE_DIR}/tools/lint/yanglint.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
-target_include_directories(yanglint BEFORE PRIVATE ${PROJECT_BINARY_DIR})
-
-# yangre
-add_executable(yangre ${resrc} $<TARGET_OBJECTS:compat>)
-target_link_libraries(yangre yang)
-install(TARGETS yangre DESTINATION ${CMAKE_INSTALL_BINDIR})
-target_include_directories(yangre BEFORE PRIVATE ${PROJECT_BINARY_DIR})
-
+# tests
if(ENABLE_VALGRIND_TESTS)
set(ENABLE_BUILD_TESTS ON)
endif()
@@ -405,8 +389,3 @@
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address,undefined -fno-omit-frame-pointer")
endif()
endif()
-
-#if(GEN_LANGUAGE_BINDINGS AND GEN_CPP_BINDINGS)
-# add_subdirectory(swig)
-#endif()
-
diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt
new file mode 100644
index 0000000..317c1c8
--- /dev/null
+++ b/tools/CMakeLists.txt
@@ -0,0 +1,9 @@
+# config file for tools
+configure_file(${PROJECT_SOURCE_DIR}/tools/config.h.in ${PROJECT_BINARY_DIR}/tools/config.h @ONLY)
+
+add_subdirectory(lint)
+add_subdirectory(re)
+
+set(format_sources
+ ${format_sources}
+ PARENT_SCOPE)
diff --git a/tools/lint/CMakeLists.txt b/tools/lint/CMakeLists.txt
new file mode 100644
index 0000000..0467a1d
--- /dev/null
+++ b/tools/lint/CMakeLists.txt
@@ -0,0 +1,22 @@
+# yanglint
+
+set(lintsrc
+ main.c
+ main_ni.c
+ commands.c
+ completion.c
+ configuration.c
+ linenoise/linenoise.c)
+
+set(format_sources
+ ${format_sources}
+ ${CMAKE_CURRENT_SOURCE_DIR}/*.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/*.h
+ PARENT_SCOPE)
+
+add_executable(yanglint ${lintsrc} $<TARGET_OBJECTS:compat>)
+target_link_libraries(yanglint yang)
+install(TARGETS yanglint DESTINATION ${CMAKE_INSTALL_BINDIR})
+install(FILES ${PROJECT_SOURCE_DIR}/tools/lint/yanglint.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
+target_include_directories(yanglint BEFORE PRIVATE ${PROJECT_BINARY_DIR})
+
diff --git a/tools/re/CMakeLists.txt b/tools/re/CMakeLists.txt
new file mode 100644
index 0000000..eb2e5b8
--- /dev/null
+++ b/tools/re/CMakeLists.txt
@@ -0,0 +1,14 @@
+# yangre
+
+set(resrc
+ main.c)
+
+set(format_sources
+ ${format_sources}
+ ${CMAKE_CURRENT_SOURCE_DIR}/*.c
+ PARENT_SCOPE)
+
+add_executable(yangre ${resrc} $<TARGET_OBJECTS:compat>)
+target_link_libraries(yangre yang)
+install(TARGETS yangre DESTINATION ${CMAKE_INSTALL_BINDIR})
+target_include_directories(yangre BEFORE PRIVATE ${PROJECT_BINARY_DIR})