[Spice-devel] [vdagent-win PATCH 13/13] build: Base cmake support

2018-05-28 Thread Frediano Ziglio
Signed-off-by: Frediano Ziglio 
---
 CMakeLists.txt | 48 
 Makefile.am|  3 ++-
 2 files changed, 50 insertions(+), 1 deletion(-)
 create mode 100644 CMakeLists.txt

diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 000..c4b8b95
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,48 @@
+cmake_minimum_required(VERSION 2.6)
+
+# TODO missing libpng flags
+# EXPERIMENTAL
+#set(CMAKE_FIND_LIBRARY_SUFFIXES .lib .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
+
+set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static -s")
+
+find_package(PNG REQUIRED)
+
+include_directories(common . spice-protocol ${PNG_INCLUDE_DIR})
+add_definitions(-DUNICODE -D_UNICODE -DOLDMSVCRT)
+add_executable(vdagent
+   common/vdcommon.cpp
+   common/vdcommon.h
+   common/vdlog.cpp
+   common/vdlog.h
+   vdagent/display_configuration.cpp
+   vdagent/display_configuration.h
+   vdagent/desktop_layout.cpp
+   vdagent/desktop_layout.h
+   vdagent/display_setting.cpp
+   vdagent/display_setting.h
+   vdagent/file_xfer.cpp
+   vdagent/file_xfer.h
+   vdagent/vdagent.cpp
+   vdagent/as_user.cpp
+   vdagent/as_user.h
+   vdagent/image.cpp
+   vdagent/image.h
+   vdagent/imagepng.cpp
+   vdagent/imagepng.h
+vdagent/vdagent.rc
+)
+target_link_libraries(vdagent ${PNG_LIBRARY} ${ZLIB_LIBRARY} wtsapi32)
+set_target_properties(vdagent PROPERTIES LINK_FLAGS -mwindows)
+
+add_executable(vdservice
+   common/stdint.h
+   common/vdcommon.cpp
+   common/vdcommon.h
+   common/vdlog.cpp
+   common/vdlog.h
+   vdservice/vdservice.cpp
+vdservice/vdservice.rc
+)
+target_link_libraries(vdservice wtsapi32)
+set_target_properties(vdservice PROPERTIES LINK_FLAGS -mconsole)
diff --git a/Makefile.am b/Makefile.am
index 3020824..79f6951 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -129,7 +129,8 @@ EXTRA_DIST +=   \
vdagent/vdagent.vcproj  \
vdservice/resource.h\
vdservice/vdservice.rc  \
-   vdservice/vdservice.vcproj
+   vdservice/vdservice.vcproj \
+   CMakeLists.txt
 
 # see git-version-gen
 dist-hook:
-- 
2.17.0

___
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/spice-devel


Re: [Spice-devel] [vdagent-win PATCH 13/13] build: Base cmake support

2018-05-28 Thread Christophe Fergeau
Lacking some rationale in the commit log I think ;)
vdagent-win already has 2 build systems (mingw+autotools and VS), there
are patches to port other spice components to meson, so why cmake here?

Christophe


On Mon, May 28, 2018 at 09:58:06AM +0100, Frediano Ziglio wrote:
> Signed-off-by: Frediano Ziglio 
> ---
>  CMakeLists.txt | 48 
>  Makefile.am|  3 ++-
>  2 files changed, 50 insertions(+), 1 deletion(-)
>  create mode 100644 CMakeLists.txt
> 
> diff --git a/CMakeLists.txt b/CMakeLists.txt
> new file mode 100644
> index 000..c4b8b95
> --- /dev/null
> +++ b/CMakeLists.txt
> @@ -0,0 +1,48 @@
> +cmake_minimum_required(VERSION 2.6)
> +
> +# TODO missing libpng flags
> +# EXPERIMENTAL
> +#set(CMAKE_FIND_LIBRARY_SUFFIXES .lib .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
> +
> +set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static -s")
> +
> +find_package(PNG REQUIRED)
> +
> +include_directories(common . spice-protocol ${PNG_INCLUDE_DIR})
> +add_definitions(-DUNICODE -D_UNICODE -DOLDMSVCRT)
> +add_executable(vdagent
> + common/vdcommon.cpp
> + common/vdcommon.h
> + common/vdlog.cpp
> + common/vdlog.h
> + vdagent/display_configuration.cpp
> + vdagent/display_configuration.h
> + vdagent/desktop_layout.cpp
> + vdagent/desktop_layout.h
> + vdagent/display_setting.cpp
> + vdagent/display_setting.h
> + vdagent/file_xfer.cpp
> + vdagent/file_xfer.h
> + vdagent/vdagent.cpp
> + vdagent/as_user.cpp
> + vdagent/as_user.h
> + vdagent/image.cpp
> + vdagent/image.h
> + vdagent/imagepng.cpp
> + vdagent/imagepng.h
> +vdagent/vdagent.rc
> +)
> +target_link_libraries(vdagent ${PNG_LIBRARY} ${ZLIB_LIBRARY} wtsapi32)
> +set_target_properties(vdagent PROPERTIES LINK_FLAGS -mwindows)
> +
> +add_executable(vdservice
> + common/stdint.h
> + common/vdcommon.cpp
> + common/vdcommon.h
> + common/vdlog.cpp
> + common/vdlog.h
> + vdservice/vdservice.cpp
> +vdservice/vdservice.rc
> +)
> +target_link_libraries(vdservice wtsapi32)
> +set_target_properties(vdservice PROPERTIES LINK_FLAGS -mconsole)
> diff --git a/Makefile.am b/Makefile.am
> index 3020824..79f6951 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -129,7 +129,8 @@ EXTRA_DIST += \
>   vdagent/vdagent.vcproj  \
>   vdservice/resource.h\
>   vdservice/vdservice.rc  \
> - vdservice/vdservice.vcproj
> + vdservice/vdservice.vcproj \
> + CMakeLists.txt
>  
>  # see git-version-gen
>  dist-hook:
> -- 
> 2.17.0
> 
> ___
> Spice-devel mailing list
> Spice-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/spice-devel


signature.asc
Description: PGP signature
___
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/spice-devel


Re: [Spice-devel] [vdagent-win PATCH 13/13] build: Base cmake support

2018-05-28 Thread Frediano Ziglio
> 
> Lacking some rationale in the commit log I think ;)
> vdagent-win already has 2 build systems (mingw+autotools and VS), there
> are patches to port other spice components to meson, so why cmake here?
> 
> Christophe
> 

Was going to add a big RFC in front.
The reason of not using VS projects is that every version is different,
currently there are only project files for an old VS version.
Why cmake instead of meson:
- zlib and libpng, agent dependencies provide cmake support;
- VS provides cmake support;
- cmake is more mature on Windows providing different macros for it,
  meson works fine with project providing meson or using pkg-config
  but this does not work well on Windows.

I generated some njnia files on Windows (and this took hours!) at the
end the build files where looping infinitely. This cmake script took
one hour or less. Not that I'm saying is complete.

> 
> On Mon, May 28, 2018 at 09:58:06AM +0100, Frediano Ziglio wrote:
> > Signed-off-by: Frediano Ziglio 
> > ---
> >  CMakeLists.txt | 48 
> >  Makefile.am|  3 ++-
> >  2 files changed, 50 insertions(+), 1 deletion(-)
> >  create mode 100644 CMakeLists.txt
> > 
> > diff --git a/CMakeLists.txt b/CMakeLists.txt
> > new file mode 100644
> > index 000..c4b8b95
> > --- /dev/null
> > +++ b/CMakeLists.txt
> > @@ -0,0 +1,48 @@
> > +cmake_minimum_required(VERSION 2.6)
> > +
> > +# TODO missing libpng flags
> > +# EXPERIMENTAL
> > +#set(CMAKE_FIND_LIBRARY_SUFFIXES .lib .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
> > +
> > +set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static -s")
> > +
> > +find_package(PNG REQUIRED)
> > +
> > +include_directories(common . spice-protocol ${PNG_INCLUDE_DIR})
> > +add_definitions(-DUNICODE -D_UNICODE -DOLDMSVCRT)
> > +add_executable(vdagent
> > +   common/vdcommon.cpp
> > +   common/vdcommon.h
> > +   common/vdlog.cpp
> > +   common/vdlog.h
> > +   vdagent/display_configuration.cpp
> > +   vdagent/display_configuration.h
> > +   vdagent/desktop_layout.cpp
> > +   vdagent/desktop_layout.h
> > +   vdagent/display_setting.cpp
> > +   vdagent/display_setting.h
> > +   vdagent/file_xfer.cpp
> > +   vdagent/file_xfer.h
> > +   vdagent/vdagent.cpp
> > +   vdagent/as_user.cpp
> > +   vdagent/as_user.h
> > +   vdagent/image.cpp
> > +   vdagent/image.h
> > +   vdagent/imagepng.cpp
> > +   vdagent/imagepng.h
> > +vdagent/vdagent.rc
> > +)
> > +target_link_libraries(vdagent ${PNG_LIBRARY} ${ZLIB_LIBRARY} wtsapi32)
> > +set_target_properties(vdagent PROPERTIES LINK_FLAGS -mwindows)
> > +
> > +add_executable(vdservice
> > +   common/stdint.h
> > +   common/vdcommon.cpp
> > +   common/vdcommon.h
> > +   common/vdlog.cpp
> > +   common/vdlog.h
> > +   vdservice/vdservice.cpp
> > +vdservice/vdservice.rc
> > +)
> > +target_link_libraries(vdservice wtsapi32)
> > +set_target_properties(vdservice PROPERTIES LINK_FLAGS -mconsole)
> > diff --git a/Makefile.am b/Makefile.am
> > index 3020824..79f6951 100644
> > --- a/Makefile.am
> > +++ b/Makefile.am
> > @@ -129,7 +129,8 @@ EXTRA_DIST +=   \
> > vdagent/vdagent.vcproj  \
> > vdservice/resource.h\
> > vdservice/vdservice.rc  \
> > -   vdservice/vdservice.vcproj
> > +   vdservice/vdservice.vcproj \
> > +   CMakeLists.txt
> >  
> >  # see git-version-gen
> >  dist-hook:

Frediano
___
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/spice-devel