diff --git a/CMakeLists.txt b/CMakeLists.txt index 08223e219a..f43c0d5888 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -146,18 +146,19 @@ add_definitions( -DNEW_PACKET_LIST ) -# todo -# This doesn't actually work because of some cache magic in -# CHECK_C_SOURCE_COMPILES +# Counterhack to work around some cache magic in CHECK_C_SOURCE_COMPILES include(CheckCCompilerFlag) -foreach(WS_C_FLAG ${WIRESHARK_C_FLAGS}) - message(STATUS "Flag pre: ${WS_C_FLAG}") - check_c_compiler_flag(${WS_C_FLAG} WS_C_FLAG_VALID) - if (${WS_C_FLAG_VALID}) - add_definitions(${WS_C_FLAG}) +set(C 0) +# Sigh: Have to use THIS_FLAG instead of ${F} for some reason +foreach(THIS_FLAG ${WIRESHARK_C_FLAGS}) + set(F WS_C_FLAG_${C}) + set(${F} ${THIS_FLAG}) + set(V WS_C_FLAG_VALID${C}) + check_c_compiler_flag(${${F}} ${V}) + if (${${V}}) + add_definitions(${${F}}) endif() - message(STATUS "Flag post ${WS_C_FLAG}: ${WS_C_FLAG_VALID}") - #set(WS_C_FLAG_VALID "" CACHE INTERNAL "Dummy" ) + math(EXPR C "${C} + 1") endforeach() if(DISABLE_WERROR OR ENABLE_EXTRA_GCC_CHECKS) @@ -285,22 +286,6 @@ if(ENABLE_AIRPCAP) set(HAVE_AIRPCAP 1) endif() -#packaging -set(CPACK_PACKAGE_NAME wireshark) -set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "capture packet") -set(CPACK_PACKAGE_VENDOR "wireshark") -set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README") -set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING") -set(CPACK_PACKAGE_VERSION_MAJOR "1") -set(CPACK_PACKAGE_VERSION_MINOR "3") -set(CPACK_PACKAGE_VERSION_PATCH "0") -set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}") - -set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}") -set(CPACK_PACKAGE_INSTALL_DIRECTORY "/usr") -set(CPACK_GENERATOR "TGZ") -set(CPACK_SOURCE_GENERATOR "TGZ") - include(ConfigureChecks.cmake) #Big or little endian ? @@ -373,6 +358,27 @@ endif() configure_file(${CMAKE_SOURCE_DIR}/cmakeconfig.h.in ${CMAKE_BINARY_DIR}/config.h) +include(FeatureSummary) +#SET_FEATURE_INFO(NAME DESCRIPTION [URL [COMMENT] ] +PRINT_ENABLED_FEATURES() +PRINT_DISABLED_FEATURES() + +#packaging +set(CPACK_PACKAGE_NAME wireshark) +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "capture packet") +set(CPACK_PACKAGE_VENDOR "wireshark") +set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README") +set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING") +set(CPACK_PACKAGE_VERSION_MAJOR "1") +set(CPACK_PACKAGE_VERSION_MINOR "3") +set(CPACK_PACKAGE_VERSION_PATCH "0") +set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}") + +set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}") +set(CPACK_PACKAGE_INSTALL_DIRECTORY "/usr") +set(CPACK_GENERATOR "TGZ") +set(CPACK_SOURCE_GENERATOR "TGZ") + link_directories( gtk codecs diff --git a/cmake/modules/FindHtmlViewer.cmake b/cmake/modules/FindHtmlViewer.cmake index 40cd03d4b2..7f4f18473b 100644 --- a/cmake/modules/FindHtmlViewer.cmake +++ b/cmake/modules/FindHtmlViewer.cmake @@ -22,13 +22,8 @@ FIND_PROGRAM(HTML_VIEWER_EXECUTABLE /sbin ) -IF (NOT HTML_VIEWER_EXECUTABLE) - MESSAGE(FATAL_ERROR "HTML_VIEWER not found - aborting") -ELSE () - SET (HTML_VIEWER_FOUND "YES") - MESSAGE(STATUS "Found HTML_VIEWER: ${HTML_VIEWER_EXECUTABLE}") -ENDIF () - +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(HtmlViewer DEFAULT_MSG HTML_VIEWER_EXECUTABLE) # For compat with configure SET(HTML_VIEWER ${HTML_VIEWER_EXECUTABLE}) diff --git a/cmake/modules/FindLEX.cmake b/cmake/modules/FindLEX.cmake index f84c8967de..b38411f7dd 100644 --- a/cmake/modules/FindLEX.cmake +++ b/cmake/modules/FindLEX.cmake @@ -18,23 +18,14 @@ FIND_PROGRAM(LEX_EXECUTABLE /sbin ) +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(LEX DEFAULT_MSG LEX_EXECUTABLE) + MARK_AS_ADVANCED(LEX_EXECUTABLE) # flex a .l file -# search flex -MACRO(FIND_LEX) - IF(NOT LEX_EXECUTABLE) - FIND_PROGRAM(LEX_EXECUTABLE flex) - IF (NOT LEX_EXECUTABLE) - MESSAGE(FATAL_ERROR "flex not found - aborting") - ENDIF (NOT LEX_EXECUTABLE) - ENDIF(NOT LEX_EXECUTABLE) -ENDMACRO(FIND_LEX) - MACRO(ADD_LEX_FILES _sources ) - FIND_LEX() - FOREACH (_current_FILE ${ARGN}) GET_FILENAME_COMPONENT(_in ${_current_FILE} ABSOLUTE) GET_FILENAME_COMPONENT(_basename ${_current_FILE} NAME_WE) @@ -51,7 +42,6 @@ MACRO(ADD_LEX_FILES _sources ) ${_in} DEPENDS ${_in} ) - SET(${_sources} ${${_sources}} ${_outc} ) ENDFOREACH (_current_FILE) ENDMACRO(ADD_LEX_FILES) diff --git a/cmake/modules/FindSH.cmake b/cmake/modules/FindSH.cmake index 394336e20e..ebfda9b9e4 100644 --- a/cmake/modules/FindSH.cmake +++ b/cmake/modules/FindSH.cmake @@ -18,15 +18,8 @@ FIND_PROGRAM(SH_EXECUTABLE /sbin ) +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(SH DEFAULT_MSG SH_EXECUTABLE) + MARK_AS_ADVANCED(SH_EXECUTABLE) -# search sh -MACRO(FIND_SH) - IF(NOT SH_EXECUTABLE) - FIND_PROGRAM(SH_EXECUTABLE sh) - IF (NOT SH_EXECUTABLE) - MESSAGE(FATAL_ERROR "sh not found - aborting") - ENDIF (NOT SH_EXECUTABLE) - ENDIF(NOT SH_EXECUTABLE) -ENDMACRO(FIND_SH) - diff --git a/cmake/modules/FindYACC.cmake b/cmake/modules/FindYACC.cmake index 9972136879..f71650b036 100644 --- a/cmake/modules/FindYACC.cmake +++ b/cmake/modules/FindYACC.cmake @@ -19,21 +19,12 @@ FIND_PROGRAM(YACC_EXECUTABLE /sbin ) +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(YACC DEFAULT_MSG YACC_EXECUTABLE) + MARK_AS_ADVANCED(YACC_EXECUTABLE) -# search bison/yacc -MACRO(FIND_YACC) - IF(NOT YACC_EXECUTABLE) - FIND_PROGRAM(YACC_EXECUTABLE bison) - IF (NOT YACC_EXECUTABLE) - MESSAGE(FATAL_ERROR "bison/yacc not found - aborting") - ENDIF (NOT YACC_EXECUTABLE) - ENDIF(NOT YACC_EXECUTABLE) -ENDMACRO(FIND_YACC) - MACRO(ADD_YACC_FILES _sources ) - FIND_YACC() - FOREACH (_current_FILE ${ARGN}) GET_FILENAME_COMPONENT(_in ${_current_FILE} ABSOLUTE) GET_FILENAME_COMPONENT(_basename ${_current_FILE} NAME_WE) @@ -49,7 +40,6 @@ MACRO(ADD_YACC_FILES _sources ) ${_in} DEPENDS ${_in} ) - SET(${_sources} ${${_sources}} ${_out} ) ENDFOREACH (_current_FILE) ENDMACRO(ADD_YACC_FILES)