Parcourir la source

optimize cmake

hewei.it il y a 4 ans
Parent
commit
8da4f69571
3 fichiers modifiés avec 18 ajouts et 8 suppressions
  1. 4 2
      CMakeLists.txt
  2. 8 0
      cmake/utils.cmake
  3. 6 6
      examples/CMakeLists.txt

+ 4 - 2
CMakeLists.txt

@@ -68,8 +68,10 @@ set(INCDIR include)
 set(SRCDIR src)
 set(LIBDIR lib)
 set(BINDIR bin)
-set(LIBRARY_OUTPUT_PATH ${LIBDIR})
-set(EXECUTABLE_OUTPUT_PATH ${BINDIR})
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${LIBDIR})
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${LIBDIR})
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${BINDIR})
+message(STATUS "CMAKE_LIBRARY_OUTPUT_DIRECTORY=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
 
 set(INCDIRS . include 3rd/include)
 set(LIBDIRS . lib 3rd/lib)

+ 8 - 0
cmake/utils.cmake

@@ -32,3 +32,11 @@ macro(list_source_directories srcs)
     list(FILTER ${srcs} EXCLUDE REGEX ".*_test\\.c")
 endmacro()
 
+macro(glob_headers_and_sources files)
+    unset(tmp)
+    foreach(dir ${ARGN})
+        file(GLOB tmp ${dir}/*.h ${dir}/*.c ${dir}/*.hpp ${dir}/*.cpp)
+        list(APPEND ${files} ${tmp})
+    endforeach()
+    list(FILTER ${files} EXCLUDE REGEX ".*_test\\.c")
+endmacro()

+ 6 - 6
examples/CMakeLists.txt

@@ -47,8 +47,8 @@ if(WITH_EVPP)
     add_executable(hmain_test hmain_test.cpp)
     target_link_libraries(hmain_test ${HV_LIBRARIES})
 
-    aux_source_directory(nmap NMAP_SRCS)
-    add_executable(nmap ${NMAP_SRCS})
+    glob_headers_and_sources(NMAP_FILES nmap)
+    add_executable(nmap ${NMAP_FILES})
     target_compile_definitions(nmap PRIVATE PRINT_DEBUG)
     target_link_libraries(nmap ${HV_LIBRARIES})
 
@@ -88,8 +88,8 @@ if(WITH_HTTP_CLIENT)
     target_link_libraries(wget ${HV_LIBRARIES})
 
     # consul
-    aux_source_directory(consul CONSUL_SRCS)
-    add_executable(consul ${CONSUL_SRCS})
+    glob_headers_and_sources(CONSUL_FILES consul)
+    add_executable(consul ${CONSUL_FILES})
     target_compile_definitions(consul PRIVATE PRINT_DEBUG)
     target_link_libraries(consul ${HV_LIBRARIES})
 
@@ -105,8 +105,8 @@ if(WITH_HTTP_CLIENT)
 
     if(WITH_HTTP_SERVER)
         # httpd
-        aux_source_directory(httpd HTTPD_SRCS)
-        add_executable(httpd ${HTTPD_SRCS})
+        glob_headers_and_sources(HTTPD_FILES httpd)
+        add_executable(httpd ${HTTPD_FILES})
         target_link_libraries(httpd ${HV_LIBRARIES})
         list(APPEND EXAMPLES httpd)
     endif()