add cmake support

This commit is contained in:
gozfree
2022-04-13 18:38:12 +08:00
parent b127027912
commit da438cae29
20 changed files with 210 additions and 28 deletions

View File

@@ -1,31 +1,7 @@
cmake_minimum_required(VERSION 3.9)
CMAKE_MINIMUM_REQUIRED(VERSION 3.0...3.20)
include_directories(include)
PROJECT(gear-lib)
set(darray_src src/libdarray.c src/libserializer.c)
set(hash_src src/libhash.c)
set(posix_src src/libposix.c)
set(base64_src src/libbase64.c)
set(log_src src/liblog.c)
set(file_src src/filewatcher.c src/fio.c src/io.c src/libfile.c)
set(ipc_src src/libipc.c src/msgq_posix.c src/msgq_sysv.c src/netlink.c src/shm.c src/unix_socket.c)
set(gevent_src src/epoll.c src/libgevent.c src/poll.c src/select.c)
set(dict_src src/libdict.c)
set(queue_src src/libqueue.c)
set(vector_src src/libvector.c)
set(media-io_src src/audio-def.c src/libmedia-io.c src/video-def.c)
add_library(posix SHARED ${posix_src})
add_library(hash SHARED ${hash_src})
add_library(media-io SHARED ${media-io_src})
add_library(darray SHARED ${darray_src})
add_library(gevent SHARED ${gevent_src})
add_library(dict SHARED ${dict_src})
add_library(ipc SHARED ${ipc_src})
target_link_libraries(ipc rt gevent dict)
add_library(log SHARED ${log_src})
add_library(file SHARED ${file_src})
add_library(queue SHARED ${queue_src})
add_library(vector SHARED ${vector_src})
INCLUDE(build/cmake_env.inc)
ADD_SUBDIRECTORY(gear-lib)

24
build/cmake_env.inc Normal file
View File

@@ -0,0 +1,24 @@
CMAKE_MINIMUM_REQUIRED(VERSION 2.8...3.20)
PROJECT(gear-lib)
#set output directory
SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/build/lib)
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/build/bin)
SET(TD_TESTS_OUTPUT_DIR ${PROJECT_BINARY_DIR}/test)
MESSAGE(STATUS "============= Compile Env ============= ")
MESSAGE(STATUS " CPU Info: " ${CMAKE_SYSTEM_PROCESSOR})
MESSAGE(STATUS " OS Info: " ${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_VERSION})
MESSAGE(STATUS "Host Info: " ${CMAKE_HOST_SYSTEM_NAME})
MESSAGE(STATUS "============= Compile Env ============= ")
MESSAGE(STATUS "Project source directory: " ${PROJECT_SOURCE_DIR})
MESSAGE(STATUS "Project binary files output path: " ${PROJECT_BINARY_DIR})
MESSAGE(STATUS "Project executable files output path: " ${EXECUTABLE_OUTPUT_PATH})
MESSAGE(STATUS "Project library files output path: " ${LIBRARY_OUTPUT_PATH})
IF (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
SET(OS_LINUX TRUE)
ELSEIF (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
SET(OS_WINDOWS TRUE)
ENDIF ()

32
gear-lib/CMakeLists.txt Normal file
View File

@@ -0,0 +1,32 @@
CMAKE_MINIMUM_REQUIRED(VERSION 3.0...3.20)
PROJECT(gear-lib)
SET(POSIX_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libposix/)
SET(DICT_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libdict/)
SET(DARRAY_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libdarray/)
SET(THREAD_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libthread/)
SET(GEVENT_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libgevent/)
SET(MEDIA_IO_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libmedia-io/)
SET(QUEUE_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libqueue/)
SET(LOG_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/liblog/)
SET(SOCK_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libsock/)
SET(FILE_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libfile/)
SET(UVC_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libuvc/)
SET(TIME_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libtime/)
ADD_SUBDIRECTORY(libposix)
ADD_SUBDIRECTORY(libbase64)
ADD_SUBDIRECTORY(libbitmap)
ADD_SUBDIRECTORY(libdict)
ADD_SUBDIRECTORY(libdarray)
ADD_SUBDIRECTORY(libqueue)
ADD_SUBDIRECTORY(libthread)
ADD_SUBDIRECTORY(libgevent)
ADD_SUBDIRECTORY(libfile)
ADD_SUBDIRECTORY(libtime)
ADD_SUBDIRECTORY(libsock)
ADD_SUBDIRECTORY(liblog)
ADD_SUBDIRECTORY(libmedia-io)
ADD_SUBDIRECTORY(libuvc)
ADD_SUBDIRECTORY(librtmpc)
ADD_SUBDIRECTORY(librtsp)

View File

@@ -0,0 +1,7 @@
CMAKE_MINIMUM_REQUIRED(VERSION 3.0...3.20)
PROJECT(gear-lib)
INCLUDE_DIRECTORIES(. ${POSIX_INCLUDE_DIR})
AUX_SOURCE_DIRECTORY(. SOURCE_FILES)
ADD_LIBRARY(base64 ${SOURCE_FILES})

View File

@@ -0,0 +1,7 @@
CMAKE_MINIMUM_REQUIRED(VERSION 3.0...3.20)
PROJECT(gear-lib)
INCLUDE_DIRECTORIES(. ${POSIX_INCLUDE_DIR})
AUX_SOURCE_DIRECTORY(. SOURCE_FILES)
ADD_LIBRARY(bitmap ${SOURCE_FILES})

View File

@@ -0,0 +1,7 @@
CMAKE_MINIMUM_REQUIRED(VERSION 3.0...3.20)
PROJECT(gear-lib)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR} ${POSIX_INCLUDE_DIR})
AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} SOURCE_FILES)
add_library(config ${SOURCE_FILES})

View File

@@ -0,0 +1,7 @@
CMAKE_MINIMUM_REQUIRED(VERSION 3.0...3.20)
PROJECT(gear-lib)
INCLUDE_DIRECTORIES(. ${POSIX_INCLUDE_DIR})
AUX_SOURCE_DIRECTORY(. SOURCE_FILES)
ADD_LIBRARY(darray ${SOURCE_FILES})

View File

@@ -0,0 +1,7 @@
CMAKE_MINIMUM_REQUIRED(VERSION 3.0...3.20)
PROJECT(gear-lib)
INCLUDE_DIRECTORIES(. ${POSIX_INCLUDE_DIR})
AUX_SOURCE_DIRECTORY(. SOURCE_FILES)
ADD_LIBRARY(dict ${SOURCE_FILES})

View File

@@ -0,0 +1,13 @@
CMAKE_MINIMUM_REQUIRED(VERSION 3.0...3.20)
PROJECT(gear-lib)
INCLUDE_DIRECTORIES(. ${POSIX_INCLUDE_DIR} ${DICT_INCLUDE_DIR} ${GEVENT_INCLUDE_DIR} ${DARRAY_INCLUDE_DIR} ${THREAD_INCLUDE_DIR})
LIST(APPEND SOURCE_FILES libfile.c fio.c io.c)
IF (DEFINED OS_LINUX)
LIST(APPEND SOURCE_FILES filewatcher.c)
ENDIF ()
ADD_LIBRARY(file ${SOURCE_FILES})

View File

@@ -0,0 +1,14 @@
CMAKE_MINIMUM_REQUIRED(VERSION 3.0...3.20)
PROJECT(gear-lib)
INCLUDE_DIRECTORIES(. ${POSIX_INCLUDE_DIR} ${DARRAY_INCLUDE_DIR} ${THREAD_INCLUDE_DIR})
LIST(APPEND SOURCE_FILES libgevent.c)
IF (DEFINED OS_LINUX)
LIST(APPEND SOURCE_FILES epoll.c libgevent.c poll.c select.c)
ELSEIF (DEFINED OS_WINDOWS)
LIST(APPEND SOURCE_FILES wepoll.c iocp.c)
ENDIF ()
ADD_LIBRARY(gevent ${SOURCE_FILES})

View File

@@ -0,0 +1,7 @@
CMAKE_MINIMUM_REQUIRED(VERSION 3.0...3.20)
PROJECT(gear-lib)
INCLUDE_DIRECTORIES(. ${POSIX_INCLUDE_DIR})
AUX_SOURCE_DIRECTORY(. SOURCE_FILES)
ADD_LIBRARY(log ${SOURCE_FILES})

View File

@@ -0,0 +1,7 @@
CMAKE_MINIMUM_REQUIRED(VERSION 3.0...3.20)
PROJECT(gear-lib)
INCLUDE_DIRECTORIES(. ${POSIX_INCLUDE_DIR})
AUX_SOURCE_DIRECTORY(. SOURCE_FILES)
ADD_LIBRARY(media-io ${SOURCE_FILES})

View File

@@ -0,0 +1,16 @@
CMAKE_MINIMUM_REQUIRED(VERSION 3.0...3.20)
PROJECT(gear-lib)
INCLUDE_DIRECTORIES(.)
LIST(APPEND SOURCE_FILES libposix.c)
IF (DEFINED OS_LINUX)
LIST(APPEND SOURCE_FILES libposix4nix.c)
ELSEIF (DEFINED OS_WINDOWS)
AUX_SOURCE_DIRECTORY(MsvcLibX MSVCLIBX_SRC)
AUX_SOURCE_DIRECTORY(pthreads4w PTHREADS4W_SRC)
LIST(APPEND SOURCE_FILES ${MSVCLIBX_SRC} ${PTHREADS4W_SRC})
ENDIF ()
ADD_LIBRARY(posix ${SOURCE_FILES})

View File

@@ -0,0 +1,7 @@
CMAKE_MINIMUM_REQUIRED(VERSION 3.0...3.20)
PROJECT(gear-lib)
INCLUDE_DIRECTORIES(. ${POSIX_INCLUDE_DIR})
AUX_SOURCE_DIRECTORY(. SOURCE_FILES)
ADD_LIBRARY(queue ${SOURCE_FILES})

View File

@@ -0,0 +1,9 @@
CMAKE_MINIMUM_REQUIRED(VERSION 3.0...3.20)
PROJECT(gear-lib)
INCLUDE_DIRECTORIES(. ${POSIX_INCLUDE_DIR} ${DARRAY_INCLUDE_DIR} ${MEDIA_IO_INCLUDE_DIR} ${QUEUE_INCLUDE_DIR} ${THREAD_INCLUDE_DIR})
AUX_SOURCE_DIRECTORY(. SOURCE_FILES)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DNO_CRYPTO")
ADD_LIBRARY(rtmpc ${SOURCE_FILES})

View File

@@ -0,0 +1,7 @@
CMAKE_MINIMUM_REQUIRED(VERSION 3.0...3.20)
PROJECT(gear-lib)
INCLUDE_DIRECTORIES(. ${POSIX_INCLUDE_DIR} ${LOG_INCLUDE_DIR} ${DICT_INCLUDE_DIR} ${THREAD_INCLUDE_DIR} ${GEVENT_INCLUDE_DIR} ${DARRAY_INCLUDE_DIR} ${SOCK_INCLUDE_DIR} ${MEDIA_IO_INCLUDE_DIR} ${FILE_INCLUDE_DIR} ${QUEUE_INCLUDE_DIR} ${UVC_INCLUDE_DIR} ${TIME_INCLUDE_DIR})
AUX_SOURCE_DIRECTORY(. SOURCE_FILES)
ADD_LIBRARY(rtsp ${SOURCE_FILES})

View File

@@ -0,0 +1,7 @@
CMAKE_MINIMUM_REQUIRED(VERSION 3.0...3.20)
PROJECT(gear-lib)
INCLUDE_DIRECTORIES(. ${POSIX_INCLUDE_DIR} ${GEVENT_INCLUDE_DIR} ${DARRAY_INCLUDE_DIR} ${THREAD_INCLUDE_DIR})
AUX_SOURCE_DIRECTORY(. SOURCE_FILES)
ADD_LIBRARY(sock ${SOURCE_FILES})

View File

@@ -0,0 +1,7 @@
CMAKE_MINIMUM_REQUIRED(VERSION 3.0...3.20)
PROJECT(gear-lib)
INCLUDE_DIRECTORIES(. ${POSIX_INCLUDE_DIR})
AUX_SOURCE_DIRECTORY(. SOURCE_FILES)
ADD_LIBRARY(thread ${SOURCE_FILES})

View File

@@ -0,0 +1,7 @@
CMAKE_MINIMUM_REQUIRED(VERSION 3.0...3.20)
PROJECT(gear-lib)
INCLUDE_DIRECTORIES(. ${POSIX_INCLUDE_DIR})
AUX_SOURCE_DIRECTORY(. SOURCE_FILES)
ADD_LIBRARY(time ${SOURCE_FILES})

View File

@@ -0,0 +1,14 @@
CMAKE_MINIMUM_REQUIRED(VERSION 3.0...3.20)
PROJECT(gear-lib)
INCLUDE_DIRECTORIES(. ${POSIX_INCLUDE_DIR} ${MEDIA_IO_INCLUDE_DIR} ${THREAD_INCLUDE_DIR})
LIST(APPEND SOURCE_FILES libuvc.c)
IF (DEFINED OS_LINUX)
LIST(APPEND SOURCE_FILES v4l2.c)
ELSEIF (DEFINED OS_WINDOWS)
LIST(APPEND SOURCE_FILES dshow.c)
ENDIF ()
ADD_LIBRARY(uvc ${SOURCE_FILES})