123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- set(MODULE_NAME "libtoolkit")
- set(MODULE_PREFIX "LIBTOOLKIT")
- set(TOOLKIT_VERSION_STRING "1.1.0-dev3")
- include(CheckLibraryExists)
- check_library_exists (dbghelp UnDecorateSymbolName "" HAVE_DBGHELP)
- if(MSVC)
- if(HAVE_DBGHELP)
- message(STATUS "have dbghelp")
- endif(HAVE_DBGHELP)
- endif(MSVC)
- # negative impact: every times you add new file, you must sync once again or the new
- # structure would not be defined.
- file(GLOB ${MODULE_PREFIX}_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.cpp" "*.h" "*.c")
- # remove the no use file at all platform so far
- # list(REMOVE_ITEM ${MODULE_PREFIX}_SRCS
- # )
- if(NOT WIN32)
- list(REMOVE_ITEM ${MODULE_PREFIX}_SRCS
- dllmain.c
- gettimeofday.c shm.h shm.c
- wavfile.c wavfile.h
- )
- list(APPEND ${MODULE_PREFIX}_SRCS
- unix/bus.c
- unix/bus_daemon.c
- unix/ioqueue.c
- unix/process_monitor.c
- unix/evtpoll.c
- unix/core.c
- unix/mutex.c
- unix/thread.c
- unix/library.c
- unix/misc.c
- )
- else()
- list(APPEND ${MODULE_PREFIX}_SRCS
- win/bus.c
- win/bus_daemon.c
- win/ioqueue.c
- win/process_monitor.c
- win/mutex.c
- win/thread.c
- win/library.c
- win/misc.c
- win/error.c
- win/util.c
- win/winapi.c
- )
- endif()
- rvc_set_win_dll_ver(${MODULE_PREFIX} ${TOOLKIT_VERSION_STRING})
- add_library(${MODULE_NAME} SHARED ${${MODULE_PREFIX}_SRCS})
- target_include_directories(${MODULE_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
- target_include_directories(${MODULE_NAME} PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
- if(MSVC)
- target_compile_definitions(${MODULE_NAME} PRIVATE "-DLIBTOOLKIT_EXPORTS")
- list(APPEND ${MODULE_PREFIX}_LIBS
- dbghelp
- uuid
- ws2_32
- Winmm
- pdh
- MsWSock # ioqueue
- IPHlpApi
- winpr)
- else(MSVC)
- list(APPEND ${MODULE_PREFIX}_LIBS ${PRIVATE_KEYWORD} winpr ${PRIVATE_KEYWORD} rt ${PRIVATE_KEYWORD} uuid)
- endif(MSVC)
- set_target_properties(${MODULE_NAME} PROPERTIES DEBUG_POSTFIX "d")
- target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
- if (BUILD_TESTING)
- add_library(${MODULE_NAME}_a STATIC ${${MODULE_PREFIX}_SRCS})
- target_link_libraries(${MODULE_NAME}_a ${${MODULE_PREFIX}_LIBS})
- target_include_directories(${MODULE_NAME}_a PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
- target_include_directories(${MODULE_NAME}_a PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
- target_compile_definitions(${MODULE_NAME}_a PRIVATE "-DTOOLKIT_LINKED_AS_STATIC_LIBRARY")
- add_subdirectory(test)
- endif()
- if(MSVC)
- install(TARGETS ${MODULE_NAME}
- RUNTIME DESTINATION "${RVC_RUNTIME_PATH}" COMPONENT libraries
- ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}" COMPONENT develops EXCLUDE_FROM_ALL
- LIBRARY DESTINATION "${RVC_LIBRARY_PATH}" COMPONENT libraries
- )
- else()
- install(TARGETS ${MODULE_NAME}
- RUNTIME DESTINATION "${RVC_RUNTIME_PATH}"
- ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
- LIBRARY DESTINATION "${RVC_RUNTIME_PATH}"
- COMPONENT libraries)
- endif(MSVC)
- if (WITH_PDB_SAVE AND MSVC AND BUILD_SHARED_LIBS)
- install(FILES ${RVC_PDB_BINARY_DIR}/${MODULE_NAME}.pdb DESTINATION ${RVC_PDBSAVE_PATH} COMPONENT symbols)
- endif()
- if(INSTALL_DEVELOP_FILES)
- file(GLOB PUBLIC_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/*.h")
- install( FILES ${PUBLIC_HEADERS} DESTINATION "${RVC_INCLUDE_PATH}/${MODULE_NAME}" COMPONENT headers)
- endif()
|