CMakeLists.txt 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. set(MODULE_NAME "libtoolkit")
  2. set(MODULE_PREFIX "LIBTOOLKIT")
  3. if(MSVC)
  4. add_definitions(-DLIBTOOLKIT_EXPORTS)
  5. endif(MSVC)
  6. include(CheckLibraryExists)
  7. check_library_exists (dbghelp UnDecorateSymbolName "" HAVE_DBGHELP)
  8. if(HAVE_DBGHELP)
  9. message(STATUS "have dbghelp")
  10. endif(HAVE_DBGHELP)
  11. file(GLOB ${MODULE_PREFIX}_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.cpp" "*.h" "*.c")
  12. # remove the no use file at all platform so far
  13. list(REMOVE_ITEM ${MODULE_PREFIX}_SRCS
  14. cputime.h
  15. cputime.c
  16. iatpatch.h
  17. iatpatch.c
  18. iconv.c
  19. iconv.h
  20. ioreactor.c
  21. ioreactor.h)
  22. if(NOT WIN32)
  23. list(REMOVE_ITEM ${MODULE_PREFIX}_SRCS
  24. gettimeofday.c)
  25. endif()
  26. #foreach(item ${${MODULE_PREFIX}_SRCS})
  27. # message(STATUS ${item})
  28. #endforeach()
  29. # On windows create dll version information.
  30. if (WIN32)
  31. set (RC_VERSION_MAJOR ${RVC_VERSION_MAJOR})
  32. set (RC_VERSION_MINOR ${RVC_VERSION_MINOR})
  33. set (RC_VERSION_BUILD ${RVC_VERSION_REVISION})
  34. configure_file(
  35. ${CMAKE_SOURCE_DIR}/Version.rc.in
  36. ${CMAKE_CURRENT_BINARY_DIR}/version.rc
  37. @ONLY)
  38. set ( ${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/version.rc)
  39. endif()
  40. add_library(${MODULE_NAME} SHARED ${${MODULE_PREFIX}_SRCS})
  41. if(MSVC)
  42. list(APPEND ${MODULE_PREFIX}_LIBS
  43. dbghelp
  44. ws2_32
  45. Winmm)
  46. else(MSVC)
  47. list(APPEND ${MODULE_PREFIX}_LIBS winpr)
  48. endif(MSVC)
  49. target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
  50. if (BUILD_TESTING)
  51. add_library(${MODULE_NAME}_a STATIC ${${MODULE_PREFIX}_SRCS})
  52. target_link_libraries(${MODULE_NAME}_a ${${MODULE_PREFIX}_LIBS})
  53. add_subdirectory(test)
  54. endif()
  55. install(TARGETS ${MODULE_NAME}
  56. RUNTIME DESTINATION "${RVC_RUNTIME_PATH}"
  57. ARCHIVE DESTINATION "${RVC_LIBRARY_PATH}"
  58. LIBRARY DESTINATION "${RVC_LIBRARY_PATH}"
  59. COMPONENT libraries)
  60. if(INSTALL_INCLUDE_FILES)
  61. file(GLOB PUBLIC_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/*.h")
  62. install( FILES ${PUBLIC_HEADERS} DESTINATION "${RVC_INCLUDE_PATH}/${MODULE_NAME}" COMPONENT headers)
  63. endif()