Here is an export file for changes I made to get a clean cmake on windows. (That's clean cmake, not a clean compile)
Roger
# HG changeset patch # User Roger Massey <[email protected]> # Date 1363739652 21600 # Node ID e1ac680d2aa5767d2fee37f895f6bf0a71c78587 # Parent 80cec7a7e666d6073f152a52763e0cd58cd3dc20 cmake changes for windows. diff -r 80cec7a7e666 -r e1ac680d2aa5 CMakeLists.txt --- a/CMakeLists.txt Tue Mar 19 09:58:54 2013 -0600 +++ b/CMakeLists.txt Tue Mar 19 18:34:12 2013 -0600 @@ -121,17 +121,26 @@ # NANOLISTENADDR Default listen address/port for nanoprobes - defaults to 0.0.0.0:1984 # set(CMAKE_BUILD_TYPE debug) + +if (WIN32) +set(CMAKE_INSTALL_PREFIX ${PROJECT_SOURCE_DIR}) +set (LIB_DIRNAME ${LIB_SUFFIX}) +set (InstallLIBS ${CMAKE_INSTALL_PREFIX}/nanoprobe/${CMAKE_BUILD_TYPE}) +set (USRSHARE ${CMAKE_INSTALL_PREFIX}/nanoprobe) +else (WIN32) set(CMAKE_INSTALL_PREFIX /usr) set (LIB_DIRNAME lib${LIB_SUFFIX}) set (InstallLIBS ${CMAKE_INSTALL_PREFIX}/${LIB_DIRNAME}/${PROJECT_NAME}) -set (CMAKE_EXE_LINKER_FLAGS "-L ${InstallLIBS}") +set (USRSHARE ${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}) +endif (WIN32) + set (CLIENTLIB ${PROJECT_NAME}clientlib) set (SERVERLIB ${PROJECT_NAME}serverlib) # Figure out where to install our python code # This isn't perfect, but it should be good enough for us to get things going... execute_process (OUTPUT_VARIABLE PYTHON_PKGDIR OUTPUT_STRIP_TRAILING_WHITESPACE COMMAND python ${BUILDTOOLS}/install-path.py) set (PYINSTALL ${PYTHON_PKGDIR}/${PROJECT_NAME}) -set (USRSHARE ${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}) + set (DAGENTS discovery_agents) set (DISCOVERYINSTALL ${USRSHARE}/${DAGENTS}) configure_file(${BUILDTOOLS}/debian/postinst.in ${CMAKE_CURRENT_BINARY_DIR}/buildtools/debian/postinst @ONLY) @@ -173,6 +182,7 @@ # Sometimes it's called glib-2.0 and sometimes libglib-2.0 - Sigh... # include(FindPkgConfig) + if (PKG_CONFIG_FOUND) pkg_check_modules(GLIB2 QUIET glib-2.0) if (NOT GLIB2_FOUND) @@ -184,26 +194,30 @@ include_directories(${GLIB2_INCLUDE_DIRS}) #set(CMAKE_REQUIRED_FLAGS ${GLIB2_LDFLAGS}) - set(CMAKE_REQUIRED_LIBRARIES c ${CMAKE_REQUIRED_LIBRARIES} ${GLIB2_LIBRARIES}) +if (WIN32) + set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${GLIB2_LIBDIR}/glib-2.0.lib) + include_directories("C:/winpcap/include") + include_directories("C:/winpcap/src/wpcap/libpcap") + INCLUDE_DIRECTORIES(${CMAKE_INCLUDE_PATH}) +else (WIN32) + set(CMAKE_REQUIRED_LIBRARIES c ${CMAKE_REQUIRED_LIBRARIES} ${GLIB2_LIBRARIES}) +endif (WIN32) + else (PKG_CONFIG_FOUND) message(SEND_ERROR "Cannot find pkg-config utility") endif (PKG_CONFIG_FOUND) -if(WIN32) - include_directories("C:/winpcap/include") - INCLUDE_DIRECTORIES(${CMAKE_INCLUDE_PATH}) -endif(WIN32) - # # Checking for various system functions and header files... # include(CheckFunctionExists) +include(CheckSymbolExists) CHECK_FUNCTION_EXISTS(g_get_real_time HAVE_G_GET_REAL_TIME) CHECK_FUNCTION_EXISTS(g_get_monotonic_time HAVE_G_GET_MONOTONIC_TIME) CHECK_FUNCTION_EXISTS(kill HAVE_KILL) CHECK_FUNCTION_EXISTS(uname HAVE_UNAME) CHECK_FUNCTION_EXISTS(endprotoent HAVE_ENDPROTOENT) -CHECK_FUNCTION_EXISTS(GetComputerName HAVE_GETCOMPUTERNAME) +CHECK_SYMBOL_EXISTS(GetComputerNameA "Windows.h" HAVE_GETCOMPUTERNAME) include(CheckIncludeFile) CHECK_INCLUDE_FILE(unistd.h HAVE_UNISTD_H) CHECK_INCLUDE_FILE(sys/utsname.h HAVE_SYS_UTSNAME_H) @@ -218,7 +232,9 @@ set (Active_CLANG_FLAGS ${Best_CLANG_FLAGS}) +if (NOT WIN32) set (OUR_LINKER_FLAGS "-Wl,-Bsymbolic-functions -Wl,-z,relro -z now") +endif (NOT WIN32) if("${CMAKE_C_COMPILER}" MATCHES ".*/ccc-analyze") message(STATUS "found CLANG") diff -r 80cec7a7e666 -r e1ac680d2aa5 clientlib/CMakeLists.txt --- a/clientlib/CMakeLists.txt Tue Mar 19 09:58:54 2013 -0600 +++ b/clientlib/CMakeLists.txt Tue Mar 19 18:34:12 2013 -0600 @@ -99,5 +99,5 @@ target_link_libraries(${CLIENTLIB} ${WS2_LIB}) ELSE(WIN32) target_link_libraries (${CLIENTLIB} -lpcap -lglib-2.0) + install(TARGETS ${CLIENTLIB} COMPONENT nanoprobe-component LIBRARY DESTINATION ${InstallLIBS}) ENDIF(WIN32) -install(TARGETS ${CLIENTLIB} COMPONENT nanoprobe-component LIBRARY DESTINATION ${InstallLIBS}) diff -r 80cec7a7e666 -r e1ac680d2aa5 serverlib/CMakeLists.txt --- a/serverlib/CMakeLists.txt Tue Mar 19 09:58:54 2013 -0600 +++ b/serverlib/CMakeLists.txt Tue Mar 19 18:34:12 2013 -0600 @@ -21,5 +21,6 @@ add_library(${SERVERLIB} SHARED dump.c lldp.c cdp.c) if (WIN32) target_link_libraries(${SERVERLIB} ${CLIENTLIB}) +else (WIN32) +install (TARGETS ${SERVERLIB} COMPONENT nanoprobe-component LIBRARY DESTINATION ${InstallLIBS}) endif (WIN32) -install (TARGETS ${SERVERLIB} COMPONENT nanoprobe-component LIBRARY DESTINATION ${InstallLIBS})
_______________________________________________ Assimilation mailing list - Discovery-Driven Monitoring [email protected] http://lists.community.tummy.com/cgi-bin/mailman/listinfo/assimilation http://assimmon.org/
