CMake/MinGW32 toolchain file

Fridrich Strba fridrich.strba at bluewin.ch
Sun Jun 7 21:33:11 UTC 2009


Just a question: why not to put the 7 defines from the toolchain file
directly into the _mingw32_cmake macro? The toolchain file is useful if
you are building for the same system several package manually and makes
it possible to not to have to type the defines in your cmake line, but
if you use macro, why simply not to put it all into the macro and avoid
distributing a toolchain file at all?

Cheers

Fridrich

On Thu, 2009-06-04 at 13:54 -0400, Adam Goode wrote:
> On 06/04/2009 01:36 PM, Kalev Lember wrote:
> > Adam Goode wrote:
> >> On 06/03/2009 01:49 PM, Richard W.M. Jones wrote:
> >>> Adam, would you like to post a suggested patch to the
> >>> mingw32-filesystem package?  Easier to have something concrete to
> >>> discuss.
> >>>
> >>> Rich.
> >>>
> >>
> >> I have not tested it yet, but something like this:
> > 
> > I think it would be nice to have a mingw32-cmake shell wrapper similar 
> > to mingw32-configure, so that the macro could also be used outside of 
> > rpm environment.
> > 
> 
> It was more trivial than I realized:
> 
> 
> Index: Toolchain-mingw32.cmake
> ===================================================================
> RCS file: Toolchain-mingw32.cmake
> diff -N Toolchain-mingw32.cmake
> --- /dev/null	1 Jan 1970 00:00:00 -0000
> +++ Toolchain-mingw32.cmake	4 Jun 2009 17:53:50 -0000
> @@ -0,0 +1,14 @@
> +SET(CMAKE_SYSTEM_NAME Windows)
> +
> +# specify the cross compiler
> +SET(CMAKE_C_COMPILER /usr/bin/i686-pc-mingw32-gcc)
> +SET(CMAKE_CXX_COMPILER /usr/bin/i686-pc-mingw32-g++)
> +
> +# where is the target environment
> +SET(CMAKE_FIND_ROOT_PATH /usr/i686-pc-mingw32/sys-root/mingw)
> +
> +# search for programs in the build host directories
> +SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
> +# for libraries and headers in the target directories
> +SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
> +SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
> Index: macros.mingw32
> ===================================================================
> RCS file: /cvs/pkgs/rpms/mingw32-filesystem/devel/macros.mingw32,v
> retrieving revision 1.3
> diff -u -3 -p -r1.3 macros.mingw32
> --- macros.mingw32	27 Mar 2009 09:20:25 -0000	1.3
> +++ macros.mingw32	4 Jun 2009 17:53:50 -0000
> @@ -136,6 +136,20 @@
>  	infodir=%{?buildroot:%{buildroot}}%{_mingw32_infodir} \\\
>    install
>  
> +%_mingw32_cmake %{_mingw32_env} ; \
> +  %__cmake \\\
> +        -DCMAKE_VERBOSE_MAKEFILE=ON \\\
> +        -DCMAKE_INSTALL_PREFIX:PATH=%{_mingw32_prefix} \\\
> +        -DCMAKE_INSTALL_LIBDIR:PATH=%{_mingw32_libdir} \\\
> +        -DINCLUDE_INSTALL_DIR:PATH=%{_mingw32_includedir} \\\
> +        -DLIB_INSTALL_DIR:PATH=%{_mingw32_libdir} \\\
> +        -DSYSCONF_INSTALL_DIR:PATH=%{_mingw32_sysconfdir} \\\
> +        -DSHARE_INSTALL_PREFIX:PATH=%{_mingw32_datadir} \\\
> +        %{?_cmake_skip_rpath} \\\
> +        -DBUILD_SHARED_LIBS:BOOL=ON \\\
> +        -DCMAKE_TOOLCHAIN_FILE=/usr/share/mingw32/Toolchain-mingw32.cmake
> +
> +
>  %_mingw32_description This is the cross-compiled version of this library / tool.\
>  You should only install this package if you want to cross-compile programs for \
>  Win32 (32 bit Windows).
> Index: mingw32-filesystem.spec
> ===================================================================
> RCS file: /cvs/pkgs/rpms/mingw32-filesystem/devel/mingw32-filesystem.spec,v
> retrieving revision 1.22
> diff -u -3 -p -r1.22 mingw32-filesystem.spec
> --- mingw32-filesystem.spec	21 Apr 2009 22:25:56 -0000	1.22
> +++ mingw32-filesystem.spec	4 Jun 2009 17:53:50 -0000
> @@ -1,8 +1,8 @@
>  %define debug_package %{nil}
>  
>  Name:           mingw32-filesystem
> -Version:        50
> -Release:        4%{?dist}
> +Version:        51
> +Release:        1%{?dist}
>  Summary:        MinGW base filesystem and environment
>  
>  Group:          Development/Libraries
> @@ -19,6 +19,7 @@ Source4:        mingw32-find-requires.sh
>  Source5:        mingw32-find-provides.sh
>  Source6:        mingw32-scripts.sh
>  Source7:        mingw32-rpmlint.config
> +Source8:        Toolchain-mingw32.cmake
>  
>  Requires:       setup
>  Requires:       rpm
> @@ -84,7 +85,7 @@ install -m 755 %{SOURCE6} $RPM_BUILD_ROO
>  
>  mkdir -p $RPM_BUILD_ROOT%{_bindir}
>  pushd $RPM_BUILD_ROOT%{_bindir}
> -for i in mingw32-configure mingw32-make mingw32-pkg-config; do
> +for i in mingw32-configure mingw32-make mingw32-pkg-config mingw32-cmake; do
>    ln -s %{_libexecdir}/mingw32-scripts $i
>  done
>  popd
> @@ -137,6 +138,9 @@ mkdir -p $RPM_BUILD_ROOT/usr/lib/rpm
>  install -m 0755 mingw32-find-requires.sh $RPM_BUILD_ROOT/usr/lib/rpm
>  install -m 0755 %{SOURCE5} $RPM_BUILD_ROOT/usr/lib/rpm
>  
> +mkdir -p $RPM_BUILD_ROOT%{_datadir}/mingw32
> +install -m 644 %{SOURCE8} $RPM_BUILD_ROOT%{_datadir}/mingw32
> +
>  
>  %clean
>  rm -rf $RPM_BUILD_ROOT
> @@ -152,12 +156,17 @@ rm -rf $RPM_BUILD_ROOT
>  %{_bindir}/mingw32-configure
>  %{_bindir}/mingw32-make
>  %{_bindir}/mingw32-pkg-config
> +%{_bindir}/mingw32-cmake
>  %{_libexecdir}/mingw32-scripts
>  %{_prefix}/i686-pc-mingw32/
> +%{_datadir}/mingw32
>  /usr/lib/rpm/mingw32-*
>  
> 
>  %changelog
> +* Thu Jun  4 2009 Adam Goode <adam at spicenitz.org> - 51-1
> +- Add CMake rules
> +
>  * Tue Apr 21 2009 Richard W.M. Jones <rjones at redhat.com> - 50-4
>  - Fix dependency problem with + in DLL name (Thomas Sailer).
>  
> 
> _______________________________________________
> fedora-mingw mailing list
> fedora-mingw at lists.fedoraproject.org
> https://admin.fedoraproject.org/mailman/listinfo/fedora-mingw






More information about the mingw mailing list