<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hi there,<br>
    <br>
    attempting to create a Windows version of the latest DBus code
    yields a fatal error while CMake is trying to create the Makefile
    (for MS Visual C compiler) with:<br>
    <blockquote>
      <pre>cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=E:/Programme/dbus-20150418 -DEXPAT_INCLUDE_DIR=E:/Programme/Expat_2.1.0/Source/lib F:/work/git/dbus-win-20150418/dbus/cmake</pre>
    </blockquote>
    The output of the above is:<br>
    <blockquote>
      <pre>-- The C compiler identification is MSVC 16.0.30319.1
-- The CXX compiler identification is MSVC 16.0.30319.1
-- Check for working C compiler: E:/Programme/Microsoft Visual Studio 10.0/VC/bin/cl.exe
-- Check for working C compiler: E:/Programme/Microsoft Visual Studio 10.0/VC/bin/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: E:/Programme/Microsoft Visual Studio 10.0/VC/bin/cl.exe
-- Check for working CXX compiler: E:/Programme/Microsoft Visual Studio 10.0/VC/bin/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
CMake Error at modules/MacrosAutotools.cmake:121 (file):
  file Internal CMake error when trying to open file:
  F:/work/git/dbus-win-20150418/dbus/cmake/../config.h.in for reading.
Call Stack (most recent call first):
  CMakeLists.txt:27 (autoheaderchecks)


-- Found EXPAT: E:/Programme/Expat_2.1.0/Bin/libexpat.lib (found version "2.1.0")
-- Could NOT find GLIB2 (missing:  GLIB2_LIBRARIES GLIB2_MAIN_INCLUDE_DIR)
-- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE)
-- Could NOT find GOBJECT (missing:  GOBJECT_LIBRARIES GOBJECT_INCLUDE_DIR)
-- Looking for alloca.h
-- Looking for alloca.h - not found
-- Looking for byteswap.h
-- Looking for byteswap.h - not found
-- Looking for crt/externs.h
-- Looking for crt/externs.h - not found
-- Looking for dirent.h
-- Looking for dirent.h - not found
-- Looking for dlfcn.h
-- Looking for dlfcn.h - not found
-- Looking for execinfo.h
-- Looking for execinfo.h - not found
-- Looking for errno.h
-- Looking for errno.h - found
-- Looking for expat.h
-- Looking for expat.h - not found
-- Looking for grp.h
-- Looking for grp.h - not found
-- Looking for inttypes.h
-- Looking for inttypes.h - not found
-- Looking for io.h
-- Looking for io.h - found
-- Looking for locale.h
-- Looking for locale.h - found
-- Looking for memory.h
-- Looking for memory.h - found
-- Looking for signal.h
-- Looking for signal.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stdlib.h
-- Looking for stdlib.h - found
-- Looking for stdio.h
-- Looking for stdio.h - found
-- Looking for string.h
-- Looking for string.h - found
-- Looking for strings.h
-- Looking for strings.h - not found
-- Looking for syslog.h
-- Looking for syslog.h - not found
-- Looking for 3 include files stdint.h, ..., sys/event.h
-- Looking for 3 include files stdint.h, ..., sys/event.h - not found
-- Looking for sys/inotify.h
-- Looking for sys/inotify.h - not found
-- Looking for sys/resource.h
-- Looking for sys/resource.h - not found
-- Looking for sys/stat.h
-- Looking for sys/stat.h - found
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for sys/uio.h
-- Looking for sys/uio.h - not found
-- Looking for sys/poll.h
-- Looking for sys/poll.h - not found
-- Looking for sys/prctl.h
-- Looking for sys/prctl.h - not found
-- Looking for sys/syslimits.h
-- Looking for sys/syslimits.h - not found
-- Looking for sys/time.h
-- Looking for sys/time.h - not found
-- Looking for sys/wait.h
-- Looking for sys/wait.h - not found
-- Looking for time.h
-- Looking for time.h - found
-- Looking for ws2tcpip.h
-- Looking for ws2tcpip.h - found
-- Looking for unistd.h
-- Looking for unistd.h - not found
-- Looking for backtrace
-- Looking for backtrace - not found
-- Looking for getgrouplist
-- Looking for getgrouplist - not found
-- Looking for getpeerucred
-- Looking for getpeerucred - not found
-- Looking for nanosleep
-- Looking for nanosleep - not found
-- Looking for getpwnam_r
-- Looking for getpwnam_r - not found
-- Looking for setenv
-- Looking for setenv - not found
-- Looking for unsetenv
-- Looking for unsetenv - not found
-- Looking for clearenv
-- Looking for clearenv - not found
-- Looking for writev
-- Looking for writev - not found
-- Looking for setrlimit
-- Looking for setrlimit - not found
-- Looking for socketpair
-- Looking for socketpair - not found
-- Looking for setlocale
-- Looking for setlocale - found
-- Looking for localeconv
-- Looking for localeconv - found
-- Looking for strtoll
-- Looking for strtoll - not found
-- Looking for strtoull
-- Looking for strtoull - not found
-- Looking for pipe2
-- Looking for pipe2 - not found
-- Looking for accept4
-- Looking for accept4 - not found
-- Looking for dirfd
-- Looking for dirfd - not found
-- Looking for inotify_init1
-- Looking for inotify_init1 - not found
-- Looking for SCM_RIGHTS
-- Looking for SCM_RIGHTS - not found
-- Looking for prctl
-- Looking for prctl - not found
-- Looking for raise
-- Looking for raise - found
-- Performing Test HAVE_CMSGCRED
-- Performing Test HAVE_CMSGCRED - Failed
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of short
-- Check size of short - done
-- Check size of int
-- Check size of int - done
-- Check size of long
-- Check size of long - done
-- Check size of long long
-- Check size of long long - done
-- Check size of __int64
-- Check size of __int64 - done
-- Check size of socklen_t
-- Check size of socklen_t - failed
-- Copying test files to test directory
-- Generating test files from templates into test directory
-- Copying generated bus config files to test directory

set -DDBUS_INSTALL_SYSTEM_LIBS=1 to install runtime libraries too
set DBUSDIR (environment or cmake option) to overwrite the default install directory


                  D-BUS 1.9.15
                  ============

        install prefix:           E:/Programme/dbus-20150418
        install exec_prefix:      E:/Programme/dbus-20150418
        install libdir:           E:/Programme/dbus-20150418/lib
        install bindir:           E:/Programme/dbus-20150418/bin
        install sysconfdir:       E:/Programme/dbus-20150418/etc
        install datadir:          E:/Programme/dbus-20150418/share
        source code location:     F:/work/git/dbus-win-20150418/dbus/cmake/..
        build dir:                F:/work/git/dbus-win-20150418/dbus/dbus-build
        c compiler:               cl.exe
        cflags:                    /DWIN32 /D_WINDOWS /W3  -Wsign-compare
        cflags debug:             /D_DEBUG /MDd /Zi /Ob0 /Od /RTC1   /FIconfig.h  /we4028 /we4013 /we4133 /we4047 /we4031 /we
4002 /we4003 /we4114  /wd4127 /wd4090 /wd4101 /wd4244  -D_DEBUG
        cflags release:           /MD /O2 /Ob2 /D NDEBUG /FIconfig.h  /we4028 /we4013 /we4133 /we4047 /we4031 /we4002 /we4003
 /we4114  /wd4127 /wd4090 /wd4101 /wd4244
        cxx compiler:             cl.exe
        cxxflags:                  /DWIN32 /D_WINDOWS /W3 /GR /EHsc  -Wsign-compare
        cxxflags debug:           /D_DEBUG /MDd /Zi /Ob0 /Od /RTC1
        cxxflags release:         /MD /O2 /Ob2 /D NDEBUG
        64-bit int:               long long
        32-bit int:               int
        16-bit int:               short
        Doxygen:                  DOXYGEN-NOTFOUND
        Docbook Generator:
        gcc coverage profiling:
        Building unit tests:      ON
        Building with GLib:
        Building verbose mode:    ON
        Building w/o assertions:  OFF
        Building w/o checks:      OFF
        Building bus stats API:   OFF
        installing system libs:   OFF
        Building inotify support:
        Building kqueue support:
        Building Doxygen docs:
        Building XML docs:
        Daemon executable name:   dbus-daemon
        System bus address:       unix:path=E:/Programme/dbus-20150418/var/run/dbus/system_bus_socket
        Session bus listens on:   autolaunch:
        Session clients connect to: autolaunch:
        Test listen address:      tcp:host=localhost
        build timestamp:          201504181831


NOTE: building with unit tests increases the size of the installed library and renders it insecure.
NOTE: building with verbose mode increases library size, may slightly increase security risk, and decreases performance.
NOTE: building with assertions increases library size and decreases performance.

-- Configuring incomplete, errors occurred!
See also "F:/work/git/dbus-win-20150418/dbus/dbus-build/CMakeFiles/CMakeOutput.log".
See also "F:/work/git/dbus-win-20150418/dbus/dbus-build/CMakeFiles/CMakeError.log".
</pre>
    </blockquote>
    <br>
    CMakeError.log at the end contains the following:<br>
    <blockquote>
      <pre>Performing C++ SOURCE FILE Test HAVE_CMSGCRED failed with the following output:
Change Dir: F:/work/git/dbus-win-20150418/dbus/dbus-build/CMakeFiles/CMakeTmp

Run Build Command:"nmake" "/NOLOGO" "cmTryCompileExec2674399229\fast"
        "E:\Programme\Microsoft Visual Studio 10.0\VC\BIN\nmake.exe" -f CMakeFiles\cmTryCompileExec2674399229.dir\build.make /nologo -L                  CMakeFiles\cmTryCompileExec2674399229.dir\build

        E:\Programme\CMake\bin\cmake.exe -E cmake_progress_report F:\work\git\dbus-win-20150418\dbus\dbus-build\CMakeFiles\CMakeTmp\CMakeFiles 1

Building CXX object CMakeFiles/cmTryCompileExec2674399229.dir/src.cxx.obj

        E:\PROGRA~1\MICROS~2.0\VC\bin\cl.exe  @D:\DOKUME~1\ADMINI~1\LOKALE~1\Temp\nm86A.tmp

src.cxx

F:\work\git\dbus-win-20150418\dbus\dbus-build\CMakeFiles\CMakeTmp\src.cxx(2) : fatal error C1083: Cannot open include file: <b>'sys/types.h sys/socket.h'</b>: No such file or directory

NMAKE : fatal error U1077: 'E:\PROGRA~1\MICROS~2.0\VC\bin\cl.exe' : return code '0x2'

Stop.

NMAKE : fatal error U1077: '"E:\Programme\Microsoft Visual Studio 10.0\VC\BIN\nmake.exe"' : return code '0x2'

Stop.


Source file was:

#include <sys/types.h sys/socket.h>

int main()
{
   cmsgcred* tmp;
   tmp->cmcred_pid;
  return 0;
}

Determining size of socklen_t failed with the following output:
Change Dir: F:/work/git/dbus-win-20150418/dbus/dbus-build/CMakeFiles/CMakeTmp

Run Build Command:"nmake" "/NOLOGO" "cmTryCompileExec3636955877\fast"
        "E:\Programme\Microsoft Visual Studio 10.0\VC\BIN\nmake.exe" -f CMakeFiles\cmTryCompileExec3636955877.dir\build.make /nologo -L                  CMakeFiles\cmTryCompileExec3636955877.dir\build

        E:\Programme\CMake\bin\cmake.exe -E cmake_progress_report F:\work\git\dbus-win-20150418\dbus\dbus-build\CMakeFiles\CMakeTmp\CMakeFiles 1

Building C object CMakeFiles/cmTryCompileExec3636955877.dir/SOCKLEN_T.c.obj

        E:\PROGRA~1\MICROS~2.0\VC\bin\cl.exe  @D:\DOKUME~1\ADMINI~1\LOKALE~1\Temp\nm895.tmp

SOCKLEN_T.c

F:\work\git\dbus-win-20150418\dbus\dbus-build\CMakeFiles\CheckTypeSize\SOCKLEN_T.c(4) : fatal error C1083: Cannot open include file: 'sys/socket.h': No such file or directory

NMAKE : fatal error U1077: 'E:\PROGRA~1\MICROS~2.0\VC\bin\cl.exe' : return code '0x2'

Stop.

NMAKE : fatal error U1077: '"E:\Programme\Microsoft Visual Studio 10.0\VC\BIN\nmake.exe"' : return code '0x2'

Stop.


F:/work/git/dbus-win-20150418/dbus/dbus-build/CMakeFiles/CheckTypeSize/SOCKLEN_T.c:
#include <sys/types.h>
#include <stdint.h>
#include <stddef.h>
#include "sys/socket.h"


#undef KEY
#if defined(__i386)
# define KEY '_','_','i','3','8','6'
#elif defined(__x86_64)
# define KEY '_','_','x','8','6','_','6','4'
#elif defined(__ppc__)
# define KEY '_','_','p','p','c','_','_'
#elif defined(__ppc64__)
# define KEY '_','_','p','p','c','6','4','_','_'
#endif

#define SIZE (sizeof(socklen_t))
char info_size[] =  {'I', 'N', 'F', 'O', ':', 's','i','z','e','[',
  ('0' + ((SIZE / 10000)%10)),
  ('0' + ((SIZE / 1000)%10)),
  ('0' + ((SIZE / 100)%10)),
  ('0' + ((SIZE / 10)%10)),
  ('0' +  (SIZE    % 10)),
  ']',
#ifdef KEY
  ' ','k','e','y','[', KEY, ']',
#endif
  '\0'};

#ifdef __CLASSIC_C__
int main(argc, argv) int argc; char *argv[];
#else
int main(int argc, char *argv[])
#endif
{
  int require = 0;
  require += info_size[argc];
  (void)argv;
  return require;
}

</pre>
    </blockquote>
    <br>
    Any hint/help highly appreciated!<br>
    <br>
    ---rony<br>
    <br>
    P.S.: Building last summer with the same commands worked, there has
    been no change in compiler, nor expat, nor cmake since then.<br>
    <br>
    <br>
  </body>
</html>