set(MODULE_NAME "libtoolkit") set(MODULE_PREFIX "LIBTOOLKIT") if(MSVC) add_definitions(-DLIBTOOLKIT_EXPORTS) endif(MSVC) include(CheckLibraryExists) check_library_exists (dbghelp UnDecorateSymbolName "" HAVE_DBGHELP) if(HAVE_DBGHELP) message(STATUS "have dbghelp") endif(HAVE_DBGHELP) 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 cputime.h cputime.c iatpatch.h iatpatch.c iconv.c iconv.h ioreactor.c ioreactor.h) if(NOT WIN32) list(REMOVE_ITEM ${MODULE_PREFIX}_SRCS gettimeofday.c) endif() #foreach(item ${${MODULE_PREFIX}_SRCS}) # message(STATUS ${item}) #endforeach() # On windows create dll version information. if (WIN32) set (RC_VERSION_MAJOR ${RVC_VERSION_MAJOR}) set (RC_VERSION_MINOR ${RVC_VERSION_MINOR}) set (RC_VERSION_BUILD ${RVC_VERSION_REVISION}) configure_file( ${CMAKE_SOURCE_DIR}/Version.rc.in ${CMAKE_CURRENT_BINARY_DIR}/version.rc @ONLY) set ( ${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/version.rc) endif() add_library(${MODULE_NAME} SHARED ${${MODULE_PREFIX}_SRCS}) if(MSVC) list(APPEND ${MODULE_PREFIX}_LIBS dbghelp ws2_32 Winmm) else(MSVC) list(APPEND ${MODULE_PREFIX}_LIBS winpr) endif(MSVC) 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}) add_subdirectory(test) endif() install(TARGETS ${MODULE_NAME} RUNTIME DESTINATION "${RVC_RUNTIME_PATH}" ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}" LIBRARY DESTINATION "${RVC_LIBRARY_PATH}" COMPONENT libraries) if(INSTALL_INCLUDE_FILES) file(GLOB PUBLIC_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/*.h") install( FILES ${PUBLIC_HEADERS} DESTINATION "${RVC_INCLUDE_PATH}/${MODULE_NAME}" COMPONENT headers) endif()