diff --git a/CMakeLists.txt b/CMakeLists.txt index 4d168c1..fe38504 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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) diff --git a/build/cmake_env.inc b/build/cmake_env.inc new file mode 100644 index 0000000..a3548bf --- /dev/null +++ b/build/cmake_env.inc @@ -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 () diff --git a/gear-lib/CMakeLists.txt b/gear-lib/CMakeLists.txt new file mode 100644 index 0000000..33cb7bb --- /dev/null +++ b/gear-lib/CMakeLists.txt @@ -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) diff --git a/gear-lib/libbase64/CMakeLists.txt b/gear-lib/libbase64/CMakeLists.txt new file mode 100644 index 0000000..8cdaf85 --- /dev/null +++ b/gear-lib/libbase64/CMakeLists.txt @@ -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}) diff --git a/gear-lib/libbitmap/CMakeLists.txt b/gear-lib/libbitmap/CMakeLists.txt new file mode 100644 index 0000000..afc9d89 --- /dev/null +++ b/gear-lib/libbitmap/CMakeLists.txt @@ -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}) diff --git a/gear-lib/libconfig/CMakeLists.txt b/gear-lib/libconfig/CMakeLists.txt new file mode 100644 index 0000000..be863a7 --- /dev/null +++ b/gear-lib/libconfig/CMakeLists.txt @@ -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}) diff --git a/gear-lib/libdarray/CMakeLists.txt b/gear-lib/libdarray/CMakeLists.txt new file mode 100644 index 0000000..ec671db --- /dev/null +++ b/gear-lib/libdarray/CMakeLists.txt @@ -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}) diff --git a/gear-lib/libdict/CMakeLists.txt b/gear-lib/libdict/CMakeLists.txt new file mode 100644 index 0000000..244b8c4 --- /dev/null +++ b/gear-lib/libdict/CMakeLists.txt @@ -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}) diff --git a/gear-lib/libfile/CMakeLists.txt b/gear-lib/libfile/CMakeLists.txt new file mode 100644 index 0000000..999b5e4 --- /dev/null +++ b/gear-lib/libfile/CMakeLists.txt @@ -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}) + diff --git a/gear-lib/libgevent/CMakeLists.txt b/gear-lib/libgevent/CMakeLists.txt new file mode 100644 index 0000000..1dd03d7 --- /dev/null +++ b/gear-lib/libgevent/CMakeLists.txt @@ -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}) diff --git a/gear-lib/liblog/CMakeLists.txt b/gear-lib/liblog/CMakeLists.txt new file mode 100644 index 0000000..992e950 --- /dev/null +++ b/gear-lib/liblog/CMakeLists.txt @@ -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}) diff --git a/gear-lib/libmedia-io/CMakeLists.txt b/gear-lib/libmedia-io/CMakeLists.txt new file mode 100644 index 0000000..c7b9d6a --- /dev/null +++ b/gear-lib/libmedia-io/CMakeLists.txt @@ -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}) diff --git a/gear-lib/libposix/CMakeLists.txt b/gear-lib/libposix/CMakeLists.txt new file mode 100644 index 0000000..39df381 --- /dev/null +++ b/gear-lib/libposix/CMakeLists.txt @@ -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}) diff --git a/gear-lib/libqueue/CMakeLists.txt b/gear-lib/libqueue/CMakeLists.txt new file mode 100644 index 0000000..b50c36c --- /dev/null +++ b/gear-lib/libqueue/CMakeLists.txt @@ -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}) diff --git a/gear-lib/librtmpc/CMakeLists.txt b/gear-lib/librtmpc/CMakeLists.txt new file mode 100644 index 0000000..9d1f916 --- /dev/null +++ b/gear-lib/librtmpc/CMakeLists.txt @@ -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}) diff --git a/gear-lib/librtsp/CMakeLists.txt b/gear-lib/librtsp/CMakeLists.txt new file mode 100644 index 0000000..53861e6 --- /dev/null +++ b/gear-lib/librtsp/CMakeLists.txt @@ -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}) diff --git a/gear-lib/libsock/CMakeLists.txt b/gear-lib/libsock/CMakeLists.txt new file mode 100644 index 0000000..12ab42c --- /dev/null +++ b/gear-lib/libsock/CMakeLists.txt @@ -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}) diff --git a/gear-lib/libthread/CMakeLists.txt b/gear-lib/libthread/CMakeLists.txt new file mode 100644 index 0000000..fdd98ea --- /dev/null +++ b/gear-lib/libthread/CMakeLists.txt @@ -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}) diff --git a/gear-lib/libtime/CMakeLists.txt b/gear-lib/libtime/CMakeLists.txt new file mode 100644 index 0000000..6f4ee15 --- /dev/null +++ b/gear-lib/libtime/CMakeLists.txt @@ -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}) diff --git a/gear-lib/libuvc/CMakeLists.txt b/gear-lib/libuvc/CMakeLists.txt new file mode 100644 index 0000000..167fbf6 --- /dev/null +++ b/gear-lib/libuvc/CMakeLists.txt @@ -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})