if( WIN32 )
set( QT5_BASE_PATH "$ENV{QT5_BASE_DIR}" )
set( CMAKE_PREFIX_PATH "${QT5_BASE_PATH}" )
- # Used for the creation of setpath.bat
- set( QT5_DLL_PATH "${QT5_BASE_PATH}/bin" )
- set( WS_ALL_LIBS ${WS_ALL_LIBS} ${QT5_DLL_PATH} )
endif()
set(PACKAGELIST ${PACKAGELIST}
Qt5Core
# Provide Windows system lib names
include( UseWinLibs )
-# Create file to set paths to run binaries from build dir
-WSExtendPath( "${WS_ALL_LIBS}" "${CMAKE_BINARY_DIR}/setpath.bat" )
-
#packaging
include(CPackConfig.txt)
nmake /X- VERBOSE=1 (or cmake --build . -- VERBOSE=1 )
Open Wireshark.sln in Windows Explorer to build in Visual Studio
msbuild wireshark.sln /m /p:Configuration=RelWithDebInfo
-7) In case you want to test the executable(s) inside the build tree:
- Run setpath.bat whenever it gets updated (there is a message in each cmake
- run whether it is necessary or not).
+7) The executables can be run from the appropriate directory, e.g. run\RelWithDebInfo
Why cmake?
==========
people use it.
- Handle -DFORTIFY_SOURCE=2 appropriately. (Do a Web search for
"cmake fortify" for some information.)
-- Add support for Visual Studio code anlaysis similar to ENABLE_CODE_ANALYSIS in
+- Add support for Visual Studio code analysis similar to ENABLE_CODE_ANALYSIS in
config.nmake.
- Define the GTK_DISABLE_ and GDK_DISABLE_ values as appropriate if we
care about supporting the GTK+ version.
endforeach()
endif()
endfunction()
-
-# Massage the list of paths to external libraries to output a batch file to update the PATH
-# So that running an executable can load the DLL's
-
-function( WSExtendPath _LIB_PATH_LIST _PATH_FILE )
- if ( WIN32 )
- #message( STATUS "All libs: ${_LIB_PATH_LIST}." )
- # Convert each path that ends in "lib" to "bin" as linking requires the lib, running requires the dll.
- foreach( THIS_LIB_PATH ${_LIB_PATH_LIST} )
- if ( THIS_LIB_PATH MATCHES "[.]lib$" )
- # lib is required for linking, the dlls are in bin so fix the path
- # by chopping the library off the end and tacking "/bin" on
- get_filename_component( LIB_PATH ${THIS_LIB_PATH} PATH )
- string( REGEX REPLACE "/lib$" "/bin" LIB_PATH "${LIB_PATH}" )
- else()
- set ( LIB_PATH "${THIS_LIB_PATH}" )
- endif()
- #message( STATUS "Raw path ${THIS_LIB_PATH} processed to ${LIB_PATH}" )
- set( WS_LOCAL_LIB_PATHS "${WS_LOCAL_LIB_PATHS}" ${LIB_PATH} )
- endforeach()
- list( REMOVE_DUPLICATES WS_LOCAL_LIB_PATHS )
- # All generated libs go here, so start our libsearch in this place
- set( WS_LOCAL_LIB_PATHS "${CMAKE_BINARY_DIR}/lib" "${WS_LOCAL_LIB_PATHS}" )
- file( TO_NATIVE_PATH "${WS_LOCAL_LIB_PATHS}" WS_NATIVE_LIB_PATHS )
- if ( EXISTS ${_PATH_FILE} )
- file( READ ${_PATH_FILE} OLD_FILE_CONTENT )
- else()
- set( OLD_FILE_CONTENT " " )
- endif()
- #message( STATUS "Searching for ${WS_NATIVE_LIB_PATHS}\nin ${OLD_FILE_CONTENT}" )
- string( FIND "${OLD_FILE_CONTENT}" "${WS_NATIVE_LIB_PATHS}" PATH_FOUND_AT )
- #message( STATUS "Location of substr: ${PATH_FOUND_AT}" )
- if( PATH_FOUND_AT GREATER -1 )
- message( "\n${_PATH_FILE} is up to date.\n" )
- else()
- #message( STATUS "Native paths: ${WS_NATIVE_LIB_PATHS}" )
- file( WRITE ${_PATH_FILE} "set PATH=%PATH%;${WS_NATIVE_LIB_PATHS}" )
- message( "\n${_PATH_FILE} is new/updated, please run it.\n" )
- endif()
- endif()
-endfunction()