25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 
 

151 satır
8.1 KiB

  1. # Initialize ######################################################################################
  2. Include ( cotire OPTIONAL RESULT_VARIABLE HAS_COTIRE )
  3. Include ( pedantic OPTIONAL RESULT_VARIABLE HAS_PEDANTIC )
  4. Include ( strip_symbols OPTIONAL RESULT_VARIABLE HAS_STRIP_SYMBOLS )
  5. Find_Package ( cppcore REQUIRED )
  6. Find_Package ( libmicrohttpd REQUIRED )
  7. If ( CPPMICROHTTPD_LOGGING MATCHES none )
  8. Set ( CPPMICROHTTPD_LOGGING_NONE true )
  9. ElseIf ( CPPMICROHTTPD_LOGGING MATCHES stdcout )
  10. Set ( CPPMICROHTTPD_LOGGING_STDCOUT true )
  11. ElseIf ( CPPMICROHTTPD_LOGGING MATCHES cpplogging )
  12. Find_Package ( cpplogging QUIET )
  13. If ( cpplogging_FOUND )
  14. Set ( CPPMICROHTTPD_LOGGING_CPPLOGGING true )
  15. Else ( )
  16. Set ( CPPMICROHTTPD_LOGGING_STDCOUT true )
  17. EndIf ( )
  18. EndIf ( )
  19. # Object Library ##################################################################################
  20. Set ( CMAKE_POSITION_INDEPENDENT_CODE ON )
  21. Set ( CPPMICROHTTPD_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../include )
  22. Set ( CPPMICROHTTPD_GENERATED_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/generated/include )
  23. Configure_File ( ${CMAKE_CURRENT_SOURCE_DIR}/../cmake/config.h.in
  24. ${CPPMICROHTTPD_GENERATED_INCLUDE_DIR}/cppmicrohttpd/config.h )
  25. File ( GLOB_RECURSE CPPMICROHTTPD_HEADER_FILES ${CPPMICROHTTPD_INCLUDE_DIR}/*.h )
  26. File ( GLOB_RECURSE CPPMICROHTTPD_INLINE_FILES ${CPPMICROHTTPD_INCLUDE_DIR}/*.inl )
  27. File ( GLOB_RECURSE CPPMICROHTTPD_SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp )
  28. Add_Library ( cppmicrohttpd-objects
  29. OBJECT
  30. ${CPPMICROHTTPD_HEADER_FILES}
  31. ${CPPMICROHTTPD_INLINE_FILES}
  32. ${CPPMICROHTTPD_SOURCE_FILES} )
  33. Target_Include_Directories ( cppmicrohttpd-objects
  34. PUBLIC
  35. $<BUILD_INTERFACE:${CPPMICROHTTPD_INCLUDE_DIR}>
  36. $<BUILD_INTERFACE:${CPPMICROHTTPD_GENERATED_INCLUDE_DIR}>
  37. $<INSTALL_INTERFACE:${CPPMICROHTTPD_INSTALL_DIR_INCLUDE}> )
  38. Target_Link_Libraries ( cppmicrohttpd-objects
  39. PUBLIC
  40. cppcore::cppcore )
  41. If ( CPPMICROHTTPD_LOGGING_CPPLOGGING )
  42. Target_Link_Libraries ( cppmicrohttpd-objects
  43. PUBLIC
  44. cpplogging::cpplogging-shared )
  45. EndIf ( )
  46. # Static Library ##################################################################################
  47. Add_Library ( cppmicrohttpd-static STATIC $<TARGET_OBJECTS:cppmicrohttpd-objects> )
  48. Set_Target_Properties ( cppmicrohttpd-static
  49. PROPERTIES
  50. OUTPUT_NAME "${CPPMICROHTTPD_OUTPUTNAME}"
  51. VERSION ${CPPMICROHTTPD_VERSION} )
  52. Target_Include_Directories ( cppmicrohttpd-static
  53. PUBLIC
  54. $<BUILD_INTERFACE:${CPPMICROHTTPD_INCLUDE_DIR}>
  55. $<BUILD_INTERFACE:${CPPMICROHTTPD_GENERATED_INCLUDE_DIR}>
  56. $<INSTALL_INTERFACE:${CPPMICROHTTPD_INSTALL_DIR_INCLUDE}> )
  57. Target_Link_Libraries ( cppmicrohttpd-static
  58. PUBLIC
  59. cppcore::cppcore
  60. libmicrohttpd::libmicrohttpd-static )
  61. If ( CPPMICROHTTPD_LOGGING_CPPLOGGING )
  62. Target_Link_Libraries ( cppmicrohttpd-static
  63. PUBLIC
  64. cpplogging::cpplogging-static )
  65. EndIf ( )
  66. # Shared Library ##################################################################################
  67. Add_Library ( cppmicrohttpd-shared SHARED $<TARGET_OBJECTS:cppmicrohttpd-objects> )
  68. Set_Target_Properties ( cppmicrohttpd-shared
  69. PROPERTIES
  70. OUTPUT_NAME "${CPPMICROHTTPD_OUTPUTNAME}"
  71. VERSION ${CPPMICROHTTPD_VERSION}
  72. SOVERSION ${CPPMICROHTTPD_VERSION_SHORT} )
  73. Target_Include_Directories ( cppmicrohttpd-shared
  74. PUBLIC
  75. $<BUILD_INTERFACE:${CPPMICROHTTPD_INCLUDE_DIR}>
  76. $<BUILD_INTERFACE:${CPPMICROHTTPD_GENERATED_INCLUDE_DIR}>
  77. $<INSTALL_INTERFACE:${CPPMICROHTTPD_INSTALL_DIR_INCLUDE}> )
  78. Target_Link_Libraries ( cppmicrohttpd-shared
  79. PUBLIC
  80. cppcore::cppcore
  81. libmicrohttpd::libmicrohttpd-shared )
  82. If ( CPPMICROHTTPD_LOGGING_CPPLOGGING )
  83. Target_Link_Libraries ( cppmicrohttpd-shared
  84. PUBLIC
  85. cpplogging::cpplogging-shared )
  86. EndIf ( )
  87. # Optimization ####################################################################################
  88. # pedantic
  89. If ( HAS_PEDANTIC )
  90. Pedantic_Apply_Flags_Target ( cppmicrohttpd-objects ALL )
  91. Pedantic_Apply_Flags_Target ( cppmicrohttpd-static ALL )
  92. Pedantic_Apply_Flags_Target ( cppmicrohttpd-shared ALL )
  93. EndIf ( )
  94. # cotire
  95. If ( HAS_COTIRE )
  96. Cotire ( cppmicrohttpd-objects )
  97. Cotire ( cppmicrohttpd-static )
  98. Cotire ( cppmicrohttpd-shared )
  99. EndIf ( )
  100. # Install #########################################################################################
  101. Set ( CPPMICROHTTPD_HAS_EXPORT False PARENT_SCOPE )
  102. # Header
  103. If ( CPPMICROHTTPD_INSTALL_HEADER )
  104. Install ( FILES ${CPPMICROHTTPD_INCLUDE_DIR}/cppmicrohttpd.h
  105. DESTINATION ${CPPMICROHTTPD_INSTALL_DIR_INCLUDE} )
  106. Install ( DIRECTORY ${CPPMICROHTTPD_INCLUDE_DIR}/cppmicrohttpd
  107. DESTINATION ${CPPMICROHTTPD_INSTALL_DIR_INCLUDE} )
  108. Install ( DIRECTORY ${CPPMICROHTTPD_GENERATED_INCLUDE_DIR}/cppmicrohttpd
  109. DESTINATION ${CPPMICROHTTPD_INSTALL_DIR_INCLUDE} )
  110. EndIf ( )
  111. # Static
  112. If ( CPPMICROHTTPD_INSTALL_STATIC )
  113. Set ( CPPMICROHTTPD_HAS_EXPORT True PARENT_SCOPE )
  114. Install ( TARGETS cppmicrohttpd-static
  115. EXPORT cppmicrohttpd
  116. DESTINATION ${CPPMICROHTTPD_INSTALL_DIR_LIB} )
  117. EndIf ( )
  118. # Shared
  119. If ( CPPMICROHTTPD_INSTALL_SHARED )
  120. Set ( CPPMICROHTTPD_HAS_EXPORT True PARENT_SCOPE )
  121. Install ( TARGETS cppmicrohttpd-shared
  122. EXPORT cppmicrohttpd
  123. DESTINATION ${CPPMICROHTTPD_INSTALL_DIR_LIB} )
  124. EndIf ( )
  125. # Debug
  126. If ( HAS_STRIP_SYMBOLS AND NOT CPPMICROHTTPD_NO_STRIP )
  127. Strip_Symbols ( cppmicrohttpd-shared CPPMICROHTTPD_DBG_FILE )
  128. If ( CPPMICROHTTPD_INSTALL_DEBUG )
  129. Install ( FILES ${CPPMICROHTTPD_DBG_FILE}
  130. DESTINATION ${CPPMICROHTTPD_INSTALL_DIR_LIB} )
  131. EndIf ( )
  132. EndIf ( )