From 03ed123626e60731e4acee253cf93bbcde4d259e Mon Sep 17 00:00:00 2001 From: Sirius Bakke Date: Sun, 9 Jun 2019 23:46:58 +0200 Subject: [PATCH] chore: Add support for mxe w32 and cmake --- CMakeLists.txt | 20 +++++++++++++++++++- cmake/VERSION.cmake | 1 + packaging/fwbuilder.nsi.in | 1 + src/fwbedit/CMakeLists.txt | 16 ++++++++++++++-- src/gui/CMakeLists.txt | 16 ++++++++++++++-- src/iosacl/CMakeLists.txt | 12 ++++++++++-- src/ipf/CMakeLists.txt | 12 ++++++++++-- src/ipfw/CMakeLists.txt | 12 ++++++++++-- src/ipt/CMakeLists.txt | 12 ++++++++++-- src/junosacl/CMakeLists.txt | 12 ++++++++++-- src/libfwbuilder/src/fwbuilder/XMLTools.cpp | 2 +- src/libfwbuilder/src/fwbuilder/snmp.cpp | 2 +- src/nxosacl/CMakeLists.txt | 12 ++++++++++-- src/pf/CMakeLists.txt | 12 ++++++++++-- src/pix/CMakeLists.txt | 12 ++++++++++-- src/procurve_acl/CMakeLists.txt | 12 ++++++++++-- src/res/CMakeLists.txt | 20 +++++++++++--------- 17 files changed, 152 insertions(+), 34 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 19e723489..8d6684550 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,6 +17,14 @@ set(FWB_INSTALL_DATADIR ${CMAKE_INSTALL_DATADIR}/fwbuilder-${PROJECT_VERSION}) set(FWB_INSTALL_DOCDIR ${CMAKE_INSTALL_DATADIR}/doc/fwbuilder-${PROJECT_VERSION}) set(FWB_INSTALL_BINDIR ${CMAKE_INSTALL_BINDIR}) +if (WIN32) + set(CMAKE_INSTALL_PREFIX ${PROJECT_BINARY_DIR}) + set(FWB_INSTALL_DATADIR release/resources) + set(FWB_INSTALL_DOCDIR release) + set(FWB_INSTALL_BINDIR release) +ENDIF() + +set(CMAKE_CXX_STANDARD 11) set(CXX_DEFAULT_FLAGS # clang/GCC warnings $<$,$>:-Wall;-Wextra;-Werror;-Wno-overloaded-virtual> # MSVC warnings @@ -28,7 +36,17 @@ add_definitions(-DVERSION="${PROJECT_VERSION}") add_definitions(-DFS_SEPARATOR="/") add_definitions(-DFWBUILDER_XML_VERSION="${FWBUILDER_XML_VERSION}") add_definitions(-DPREFIX="${CMAKE_INSTALL_PREFIX}") -add_definitions(-DRES_DIR="${CMAKE_INSTALL_PREFIX}/${FWB_INSTALL_DATADIR}") + +IF (WIN32) + add_definitions(-DRES_DIR="resources") +ELSE() + add_definitions(-DRES_DIR="${CMAKE_INSTALL_PREFIX}/${FWB_INSTALL_DATADIR}") +ENDIF() + +IF (WIN32) + #add_definitions(-DIN_LIBXML) # Enable for static build + add_definitions(-DWIN32_LEAN_AND_MEAN) +ENDIF() if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Release CACHE STRING diff --git a/cmake/VERSION.cmake b/cmake/VERSION.cmake index 4d8301538..48d65d140 100644 --- a/cmake/VERSION.cmake +++ b/cmake/VERSION.cmake @@ -5,6 +5,7 @@ set(PROJECT_VERSION_MINOR "0") set(PROJECT_VERSION_PATCH "0") set(PROJECT_VERSION_EXTRA "-beta") set(PROJECT_GENERATION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}") +set(PROJECT_GENERATION_SHORT "${PROJECT_VERSION_MAJOR}${PROJECT_VERSION_MINOR}") set(PROJECT_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}${PROJECT_VERSION_EXTRA}") ## Git revision number ## diff --git a/packaging/fwbuilder.nsi.in b/packaging/fwbuilder.nsi.in index 006e7c2ce..4939c2425 100755 --- a/packaging/fwbuilder.nsi.in +++ b/packaging/fwbuilder.nsi.in @@ -273,6 +273,7 @@ Section "FWBuilder (required)" File "/usr/lib/mxe/usr/i686-w64-mingw32.shared/bin/libintl-8.dll" File "/usr/lib/mxe/usr/i686-w64-mingw32.shared/bin/libpcre-1.dll" File "/usr/lib/mxe/usr/i686-w64-mingw32.shared/bin/libpcre16-0.dll" + File "/usr/lib/mxe/usr/i686-w64-mingw32.shared/bin/libpcre2-16-0.dll" File "/usr/lib/mxe/usr/i686-w64-mingw32.shared/bin/libpng16-16.dll" File "/usr/lib/mxe/usr/i686-w64-mingw32.shared/bin/libstdc++-6.dll" File "/usr/lib/mxe/usr/i686-w64-mingw32.shared/bin/libwinpthread-1.dll" diff --git a/src/fwbedit/CMakeLists.txt b/src/fwbedit/CMakeLists.txt index bd1bda615..d915fc4a2 100644 --- a/src/fwbedit/CMakeLists.txt +++ b/src/fwbedit/CMakeLists.txt @@ -12,11 +12,23 @@ set(fwbedit_srcs add_executable(fwbedit ${fwbedit_srcs}) -target_link_libraries(fwbedit gui import fwbparser antlr common iptlib fwbpf fwbcisco compilerdriver fwcompiler fwbuilder c xml2 m dl xslt z util netsnmp crypto pthread) +target_link_libraries(fwbedit gui import fwbparser antlr common iptlib fwbpf fwbcisco compilerdriver fwcompiler fwbuilder xml2 m xslt z crypto pthread) + +IF (WIN32) + target_link_libraries(fwbedit lzma iconv) +ENDIF() + +IF (UNIX) + target_link_libraries(fwbedit c dl util) +ENDIF() + +IF (NETSNMP_FOUND) + target_link_libraries(fwbedit netsnmp) +ENDIF() target_compile_options(fwbedit PRIVATE ${CXX_DEFAULT_FLAGS}) -install(TARGETS fwbedit RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +install(TARGETS fwbedit RUNTIME DESTINATION ${FWB_INSTALL_BINDIR}) qt5_use_modules(fwbedit Widgets Network PrintSupport) diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt index fa107d6cd..343666ba0 100644 --- a/src/gui/CMakeLists.txt +++ b/src/gui/CMakeLists.txt @@ -5,13 +5,25 @@ set(fwbuilder-gui_srcs add_executable(fwbuilder-gui ${fwbuilder-gui_srcs}) -target_link_libraries(fwbuilder-gui gui import fwbparser antlr common iptlib fwbpf fwbjuniper fwbcisco compilerdriver fwcompiler fwbuilder c xml2 m dl xslt z util netsnmp crypto pthread) +target_link_libraries(fwbuilder-gui gui import fwbparser antlr common iptlib fwbpf fwbjuniper fwbcisco compilerdriver fwcompiler fwbuilder xml2 m xslt z crypto pthread) + +IF (WIN32) + target_link_libraries(fwbuilder-gui lzma iconv) +ENDIF() + +IF (UNIX) + target_link_libraries(fwbuilder-gui c dl util) +ENDIF() + +IF (NETSNMP_FOUND) + target_link_libraries(fwbuilder-gui netsnmp) +ENDIF() target_compile_options(fwbuilder-gui PRIVATE ${CXX_DEFAULT_FLAGS}) set_target_properties(fwbuilder-gui PROPERTIES OUTPUT_NAME "fwbuilder") -install(TARGETS fwbuilder-gui RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +install(TARGETS fwbuilder-gui RUNTIME DESTINATION ${FWB_INSTALL_BINDIR}) qt5_use_modules(fwbuilder-gui Widgets Network PrintSupport) diff --git a/src/iosacl/CMakeLists.txt b/src/iosacl/CMakeLists.txt index 98374ee80..adcce8151 100644 --- a/src/iosacl/CMakeLists.txt +++ b/src/iosacl/CMakeLists.txt @@ -6,11 +6,19 @@ set(iosacl_srcs add_executable(fwb_iosacl ${iosacl_srcs}) -target_link_libraries(fwb_iosacl common fwbcisco compilerdriver fwcompiler fwbuilder pthread c xml2 m dl xslt z util) +target_link_libraries(fwb_iosacl common fwbcisco compilerdriver fwcompiler fwbuilder xml2 pthread m xslt z) + +IF (WIN32) + target_link_libraries(fwb_iosacl lzma iconv) +ENDIF() + +IF (UNIX) + target_link_libraries(fwb_iosacl c dl util) +ENDIF() target_compile_options(fwb_iosacl PRIVATE ${CXX_DEFAULT_FLAGS}) -install(TARGETS fwb_iosacl RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +install(TARGETS fwb_iosacl RUNTIME DESTINATION ${FWB_INSTALL_BINDIR}) qt5_use_modules(fwb_iosacl Widgets) diff --git a/src/ipf/CMakeLists.txt b/src/ipf/CMakeLists.txt index 1dd76b6cf..60dbb2a68 100644 --- a/src/ipf/CMakeLists.txt +++ b/src/ipf/CMakeLists.txt @@ -5,11 +5,19 @@ set(ipf_srcs add_executable(fwb_ipf ${ipf_srcs}) -target_link_libraries(fwb_ipf common fwbpf compilerdriver fwcompiler fwbuilder pthread c xml2 m dl xslt z util) +target_link_libraries(fwb_ipf common fwbpf compilerdriver fwcompiler fwbuilder xml2 pthread m xslt z) + +IF (WIN32) + target_link_libraries(fwb_ipf lzma iconv) +ENDIF() + +IF (UNIX) + target_link_libraries(fwb_ipf c dl util) +ENDIF() target_compile_options(fwb_ipf PRIVATE ${CXX_DEFAULT_FLAGS}) -install(TARGETS fwb_ipf RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +install(TARGETS fwb_ipf RUNTIME DESTINATION ${FWB_INSTALL_BINDIR}) qt5_use_modules(fwb_ipf Widgets) diff --git a/src/ipfw/CMakeLists.txt b/src/ipfw/CMakeLists.txt index a862754d4..c40103573 100644 --- a/src/ipfw/CMakeLists.txt +++ b/src/ipfw/CMakeLists.txt @@ -5,11 +5,19 @@ set(ipfw_srcs add_executable(fwb_ipfw ${ipfw_srcs}) -target_link_libraries(fwb_ipfw common fwbpf compilerdriver fwcompiler fwbuilder pthread c xml2 m dl xslt z util) +target_link_libraries(fwb_ipfw common fwbpf compilerdriver fwcompiler fwbuilder xml2 pthread m xslt z) + +IF (WIN32) + target_link_libraries(fwb_ipfw lzma iconv) +ENDIF() + +IF (UNIX) + target_link_libraries(fwb_ipfw c dl util) +ENDIF() target_compile_options(fwb_ipfw PRIVATE ${CXX_DEFAULT_FLAGS}) -install(TARGETS fwb_ipfw RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +install(TARGETS fwb_ipfw RUNTIME DESTINATION ${FWB_INSTALL_BINDIR}) qt5_use_modules(fwb_ipfw Widgets) diff --git a/src/ipt/CMakeLists.txt b/src/ipt/CMakeLists.txt index a596b6d8b..306ea3c9a 100644 --- a/src/ipt/CMakeLists.txt +++ b/src/ipt/CMakeLists.txt @@ -5,11 +5,19 @@ set(ipt_srcs add_executable(fwb_ipt ${ipt_srcs}) -target_link_libraries(fwb_ipt common iptlib compilerdriver fwcompiler fwbuilder pthread c xml2 m dl xslt z util) +target_link_libraries(fwb_ipt common iptlib compilerdriver fwcompiler fwbuilder xml2 pthread m xslt z) + +IF (WIN32) + target_link_libraries(fwb_ipt lzma iconv) +ENDIF() + +IF (UNIX) + target_link_libraries(fwb_ipt c dl util) +ENDIF() target_compile_options(fwb_ipt PRIVATE ${CXX_DEFAULT_FLAGS}) -install(TARGETS fwb_ipt RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +install(TARGETS fwb_ipt RUNTIME DESTINATION ${FWB_INSTALL_BINDIR}) qt5_use_modules(fwb_ipt Widgets) diff --git a/src/junosacl/CMakeLists.txt b/src/junosacl/CMakeLists.txt index 651156e57..efcd66885 100644 --- a/src/junosacl/CMakeLists.txt +++ b/src/junosacl/CMakeLists.txt @@ -6,11 +6,19 @@ set(junosacl_srcs add_executable(fwb_junosacl ${junosacl_srcs}) -target_link_libraries(fwb_junosacl common fwbcisco fwbjuniper compilerdriver fwcompiler fwbuilder pthread c xml2 m dl xslt z util) +target_link_libraries(fwb_junosacl common fwbcisco fwbjuniper compilerdriver fwcompiler fwbuilder xml2 pthread m xslt z) + +IF (WIN32) + target_link_libraries(fwb_junosacl iconv lzma) +ENDIF() + +IF (UNIX) + target_link_libraries(fwb_junosacl c dl util) +ENDIF() target_compile_options(fwb_junosacl PRIVATE ${CXX_DEFAULT_FLAGS}) -install(TARGETS fwb_junosacl RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +install(TARGETS fwb_junosacl RUNTIME DESTINATION ${FWB_INSTALL_BINDIR}) qt5_use_modules(fwb_junosacl Widgets) diff --git a/src/libfwbuilder/src/fwbuilder/XMLTools.cpp b/src/libfwbuilder/src/fwbuilder/XMLTools.cpp index 9ab1e181b..ecd2a4d10 100644 --- a/src/libfwbuilder/src/fwbuilder/XMLTools.cpp +++ b/src/libfwbuilder/src/fwbuilder/XMLTools.cpp @@ -69,7 +69,7 @@ using namespace std; using namespace libfwbuilder; -#ifndef __MINGW32__ +#if !defined(__MINGW32__) || defined(IN_LIBXML) extern int xmlDoValidityCheckingDefaultValue ; extern int xmlLoadExtDtdDefaultValue ; #else diff --git a/src/libfwbuilder/src/fwbuilder/snmp.cpp b/src/libfwbuilder/src/fwbuilder/snmp.cpp index cb2f78e57..5758fcfc6 100644 --- a/src/libfwbuilder/src/fwbuilder/snmp.cpp +++ b/src/libfwbuilder/src/fwbuilder/snmp.cpp @@ -1886,6 +1886,6 @@ void SNMP_discover_query::run_impl(Logger *logger,std::atomic *stop_progra #else #ifndef _WIN32 -# warning ucd-snmp library not found - SNMP functionality will be disabled. +//# warning ucd-snmp library not found - SNMP functionality will be disabled. #endif #endif diff --git a/src/nxosacl/CMakeLists.txt b/src/nxosacl/CMakeLists.txt index 403565fc6..915bc5d76 100644 --- a/src/nxosacl/CMakeLists.txt +++ b/src/nxosacl/CMakeLists.txt @@ -6,11 +6,19 @@ set(nxosacl_srcs add_executable(fwb_nxosacl ${nxosacl_srcs}) -target_link_libraries(fwb_nxosacl common fwbcisco compilerdriver fwcompiler fwbuilder pthread c xml2 m dl xslt z util) +target_link_libraries(fwb_nxosacl common fwbcisco compilerdriver fwcompiler fwbuilder xml2 pthread m xslt z) + +IF (WIN32) + target_link_libraries(fwb_nxosacl lzma iconv) +ENDIF() + +IF (UNIX) + target_link_libraries(fwb_nxosacl c dl util) +ENDIF() target_compile_options(fwb_nxosacl PRIVATE ${CXX_DEFAULT_FLAGS}) -install(TARGETS fwb_nxosacl RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +install(TARGETS fwb_nxosacl RUNTIME DESTINATION ${FWB_INSTALL_BINDIR}) qt5_use_modules(fwb_nxosacl Widgets) diff --git a/src/pf/CMakeLists.txt b/src/pf/CMakeLists.txt index 7209b3ecf..2ff0fcc60 100644 --- a/src/pf/CMakeLists.txt +++ b/src/pf/CMakeLists.txt @@ -5,11 +5,19 @@ set(pf_srcs add_executable(fwb_pf ${pf_srcs}) -target_link_libraries(fwb_pf common fwbpf compilerdriver fwcompiler fwbuilder pthread c xml2 m dl xslt z util) +target_link_libraries(fwb_pf common fwbpf compilerdriver fwcompiler fwbuilder xml2 pthread m xslt z) + +IF (WIN32) + target_link_libraries(fwb_pf lzma iconv) +ENDIF() + +IF (UNIX) + target_link_libraries(fwb_pf c dl util) +ENDIF() target_compile_options(fwb_pf PRIVATE ${CXX_DEFAULT_FLAGS}) -install(TARGETS fwb_pf RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +install(TARGETS fwb_pf RUNTIME DESTINATION ${FWB_INSTALL_BINDIR}) qt5_use_modules(fwb_pf Widgets) diff --git a/src/pix/CMakeLists.txt b/src/pix/CMakeLists.txt index f77dd7360..0b903c9e6 100644 --- a/src/pix/CMakeLists.txt +++ b/src/pix/CMakeLists.txt @@ -5,11 +5,19 @@ set(pix_srcs add_executable(fwb_pix ${pix_srcs}) -target_link_libraries(fwb_pix common fwbcisco compilerdriver fwcompiler fwbuilder pthread c xml2 m dl xslt z util) +target_link_libraries(fwb_pix common fwbcisco compilerdriver fwcompiler fwbuilder xml2 pthread m xslt z) + +IF (WIN32) + target_link_libraries(fwb_pix lzma iconv) +ENDIF() + +IF (UNIX) + target_link_libraries(fwb_pix c dl util) +ENDIF() target_compile_options(fwb_pix PRIVATE ${CXX_DEFAULT_FLAGS}) -install(TARGETS fwb_pix RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +install(TARGETS fwb_pix RUNTIME DESTINATION ${FWB_INSTALL_BINDIR}) qt5_use_modules(fwb_pix Widgets) diff --git a/src/procurve_acl/CMakeLists.txt b/src/procurve_acl/CMakeLists.txt index cf113c8d1..d40e13cd9 100644 --- a/src/procurve_acl/CMakeLists.txt +++ b/src/procurve_acl/CMakeLists.txt @@ -6,11 +6,19 @@ set(procurve_acl_srcs add_executable(fwb_procurve_acl ${procurve_acl_srcs}) -target_link_libraries(fwb_procurve_acl common fwbcisco compilerdriver fwcompiler fwbuilder pthread c xml2 m dl xslt z util) +target_link_libraries(fwb_procurve_acl common fwbcisco compilerdriver fwcompiler fwbuilder xml2 pthread m xslt z) + +IF (WIN32) + target_link_libraries(fwb_procurve_acl lzma iconv) +ENDIF() + +IF (UNIX) + target_link_libraries(fwb_procurve_acl c dl util) +ENDIF() target_compile_options(fwb_procurve_acl PRIVATE ${CXX_DEFAULT_FLAGS}) -install(TARGETS fwb_procurve_acl RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +install(TARGETS fwb_procurve_acl RUNTIME DESTINATION ${FWB_INSTALL_BINDIR}) qt5_use_modules(fwb_procurve_acl Widgets) diff --git a/src/res/CMakeLists.txt b/src/res/CMakeLists.txt index 110875d21..4d7b2ec34 100644 --- a/src/res/CMakeLists.txt +++ b/src/res/CMakeLists.txt @@ -14,13 +14,15 @@ install(FILES ${os_files} DESTINATION ${FWB_INSTALL_DATADIR}/os) install(FILES ${platform_files} DESTINATION ${FWB_INSTALL_DATADIR}/platform) install(FILES ${help_files} DESTINATION ${FWB_INSTALL_DATADIR}/help/en_US) install(DIRECTORY configlets DESTINATION ${FWB_INSTALL_DATADIR}) -install(FILES fwbuilder.desktop DESTINATION ${CMAKE_INSTALL_DATADIR}/applications) -install(FILES Icons/16x16/fwbuilder.png DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/16x16/apps) -install(FILES Icons/24x24/fwbuilder.png DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/24x24/apps) -install(FILES Icons/32x32/fwbuilder.png DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/32x32/apps) -install(FILES Icons/48x48/fwbuilder.png DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/48x48/apps) -install(FILES Icons/72x72/fwbuilder.png DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/72x72/apps) -install(FILES Icons/128x128/fwbuilder.png DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/128x128/apps) -install(FILES Icons/256x256/fwbuilder.png DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/256x256/apps) -install(FILES Icons/512x512/fwbuilder.png DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/512x512/apps) +if (NOT WIN32) + install(FILES fwbuilder.desktop DESTINATION ${CMAKE_INSTALL_DATADIR}/applications) + install(FILES Icons/16x16/fwbuilder.png DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/16x16/apps) + install(FILES Icons/24x24/fwbuilder.png DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/24x24/apps) + install(FILES Icons/32x32/fwbuilder.png DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/32x32/apps) + install(FILES Icons/48x48/fwbuilder.png DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/48x48/apps) + install(FILES Icons/72x72/fwbuilder.png DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/72x72/apps) + install(FILES Icons/128x128/fwbuilder.png DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/128x128/apps) + install(FILES Icons/256x256/fwbuilder.png DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/256x256/apps) + install(FILES Icons/512x512/fwbuilder.png DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/512x512/apps) +endif()