On Wed, 2018-11-28 at 21:05 -0800, Pallavi Kadam wrote: > Signed-off-by: Pallavi Kadam <pallavi.ka...@intel.com> > --- > [RFC] This is a large patch that contains changes to build the > HelloWorld > sample application on Windows. It also contains changes to build the > librte_eal and librte_kvargs libraries which are required to build > the > sample application. To merge these changes, this patch will be split > up > into multiple smaller patches and sent for review. > > lib/librte_eal/common/eal_common_errno.c | 9 + > lib/librte_eal/common/eal_common_log.c | 2 + > lib/librte_eal/common/eal_common_options.c | 2 + > lib/librte_eal/common/eal_common_timer.c | 2 + > .../common/include/arch/x86/rte_byteorder.h | 14 + > .../common/include/arch/x86/rte_rtm.h | 22 +- > lib/librte_eal/common/include/rte_common.h | 11 + > .../common/include/rte_malloc_heap.h | 3 + > lib/librte_eal/common/include/rte_random.h | 4 + > .../common/include/rte_string_fns.h | 2 + > lib/librte_eal/common/malloc_elem.h | 3 + > lib/librte_eal/common/malloc_heap.c | 2 + > lib/librte_eal/common/malloc_heap.h | 4 + > lib/librte_eal/windows/eal/eal.c | 697 +++++++++ > lib/librte_eal/windows/eal/eal_alarm.c | 29 + > lib/librte_eal/windows/eal/eal_debug.c | 102 ++ > lib/librte_eal/windows/eal/eal_fbarray.c | 1273 > +++++++++++++++++ > lib/librte_eal/windows/eal/eal_filesystem.h | 97 ++ > .../windows/eal/eal_hugepage_info.c | 20 + > lib/librte_eal/windows/eal/eal_interrupts.c | 90 ++ > lib/librte_eal/windows/eal/eal_lcore.c | 83 ++ > lib/librte_eal/windows/eal/eal_log.c | 415 ++++++ > lib/librte_eal/windows/eal/eal_memalloc.c | 995 +++++++++++++ > lib/librte_eal/windows/eal/eal_memory.c | 140 ++ > lib/librte_eal/windows/eal/eal_proc.c | 1003 +++++++++++++ > lib/librte_eal/windows/eal/eal_thread.c | 167 +++ > lib/librte_eal/windows/eal/eal_timer.c | 40 + > .../windows/eal/linux-emu/_rand48.c | 46 + > .../windows/eal/linux-emu/drand48.c | 62 + > lib/librte_eal/windows/eal/linux-emu/fork.c | 111 ++ > lib/librte_eal/windows/eal/linux-emu/getopt.c | 407 ++++++ > .../windows/eal/linux-emu/lrand48.c | 23 + > lib/librte_eal/windows/eal/linux-emu/mman.c | 179 +++ > lib/librte_eal/windows/eal/linux-emu/setenv.c | 26 + > .../windows/eal/linux-emu/srand48.c | 30 + > .../windows/eal/linux-emu/termios.c | 11 + > lib/librte_eal/windows/eal/linux-emu/unistd.c | 21 + > lib/librte_eal/windows/eal/malloc_heap.c | 1068 ++++++++++++++ > lib/librte_eal/windows/eal/malloc_mp.c | 645 +++++++++ > .../windows/include_override/dirent.h | 950 ++++++++++++ > .../windows/include_override/getopt.h | 252 ++++ > .../windows/include_override/net/ethernet.h | 405 ++++++ > .../windows/include_override/netinet/in.h | 48 + > .../windows/include_override/netinet/tcp.h | 4 + > .../windows/include_override/pthread.h | 65 + > .../windows/include_override/rand48.h | 32 + > .../windows/include_override/sched.h | 21 + > .../windows/include_override/sys/_iovec.h | 48 + > .../include_override/sys/_sockaddr_storage.h | 54 + > .../windows/include_override/sys/_termios.h | 222 +++ > .../windows/include_override/sys/_types.h | 105 ++ > .../windows/include_override/sys/cdefs.h | 3 + > .../windows/include_override/sys/mman.h | 63 + > .../include_override/sys/netbsd/queue.h | 846 +++++++++++ > .../windows/include_override/sys/queue.h | 11 + > .../windows/include_override/syslog.h | 217 +++ > .../windows/include_override/termios.h | 1 + > .../windows/include_override/unistd.h | 30 + > .../windows/include_override/x86intrin.h | 1 + > .../rte_override/exec-env/rte_interrupts.h | 3 + > lib/librte_eal/windows/rte_override/rte_acl.h | 7 + > .../windows/rte_override/rte_atomic.h | 744 ++++++++++ > .../windows/rte_override/rte_bus_pci.h | 25 + > .../windows/rte_override/rte_byteorder.h | 10 + > .../windows/rte_override/rte_common.h | 56 + > .../windows/rte_override/rte_common.h.sav | 372 +++++ > .../windows/rte_override/rte_config.h | 328 +++++ > .../windows/rte_override/rte_cpuflags.h | 3 + > .../windows/rte_override/rte_cycles.h | 26 + > .../windows/rte_override/rte_debug.h | 22 + > lib/librte_eal/windows/rte_override/rte_io.h | 8 + > .../windows/rte_override/rte_lcore.h | 15 + > .../windows/rte_override/rte_log.h.sav | 6 + > .../windows/rte_override/rte_memcpy.h | 3 + > .../windows/rte_override/rte_memory.h | 20 + > .../windows/rte_override/rte_pause.h | 10 + > lib/librte_eal/windows/rte_override/rte_pci.h | 7 + > .../windows/rte_override/rte_per_lcore.h | 29 + > .../windows/rte_override/rte_prefetch.h | 29 + > lib/librte_eal/windows/rte_override/rte_rtm.h | 8 + > .../windows/rte_override/rte_rwlock.h | 40 + > .../windows/rte_override/rte_spinlock.h | 271 ++++ > .../windows/rte_override/rte_vect.h | 5 + > .../windows/rte_override/rte_wincompat.h | 347 +++++ > .../windows/rte_override/rte_windows.h | 497 +++++++ > mk/exec-env/windows/DpdkRteLib.props | 46 + > mk/exec-env/windows/dpdk.sln | 43 + > .../windows/helloworld/helloworld.vcxproj | 98 ++ > .../helloworld/helloworld.vcxproj.filters | 22 + > .../helloworld/helloworld.vcxproj.user | 4 + > .../windows/librte_eal/librte_eal.vcxproj | 187 +++ > .../librte_eal/librte_eal.vcxproj.filters | 297 ++++ > .../librte_eal/librte_eal.vcxproj.user | 4 + > .../librte_kvargs/librte_kvargs.vcxproj | 91 ++ > .../librte_kvargs.vcxproj.filters | 33 + > .../librte_kvargs/librte_kvargs.vcxproj.user | 4 + > 96 files changed, 14955 insertions(+), 3 deletions(-)
Hi, In my (limited) experience managing cross-platform projects, having manually defined Visual Studio files (*.vcxproj.*) manually checked in git and maintained is always a pain. They invariably get out of sync and rot, and they are massive and not very readable. Given that we have now reasonably on-par support for Meson, which has both a Visual Studio backend and a Ninja (which IIRC is supported by VS) backend, wouldn't it be better to let the build be handled by Meson itself? There might be a couple of places that needs fixing (we don't always to the right thing of using join_path for directories for example) but in the long run it would be much more maintainable IMHO. Adding new libraries/PMDs would need to be done just once, etc etc. -- Kind regards, Luca Boccassi