CMake/MinGW32 toolchain file

Adam Goode adam at spicenitz.org
Thu Jun 4 17:54:29 UTC 2009


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).
 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 260 bytes
Desc: OpenPGP digital signature
Url : http://lists.fedoraproject.org/pipermail/mingw/attachments/20090604/7983bfd9/attachment.bin 


More information about the mingw mailing list