changeset 1663:9577f70222f8

add cmake toolchain file and simplify build rules of relevant packages
author Tony Theodore <tonyt@logyst.com>
date Thu, 17 Mar 2011 05:05:00 +1100
parents 232b3b5ab20c
children eec7a1576df7
files Makefile src/gcc.mk src/openal.mk src/openscenegraph.mk src/physfs.mk src/taglib.mk src/vigra.mk
diffstat 7 files changed, 41 insertions(+), 78 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile	Wed Mar 16 08:57:09 2011 +0100
+++ b/Makefile	Thu Mar 17 05:05:00 2011 +1100
@@ -27,6 +27,8 @@
                 $(MAKE) openssl $(PATCH) $(PERL) pkg-config \
                 scons $(SED) unzip wget xz yasm
 
+CMAKE_TOOLCHAIN_FILE := $(PREFIX)/$(TARGET)/share/cmake/mingw-cross-env-conf.cmake
+
 # unexport any environment variables that might cause trouble
 unexport AR CC CFLAGS C_INCLUDE_PATH CPATH CPLUS_INCLUDE_PATH CPP
 unexport CPPFLAGS CROSS CXX CXXCPP CXXFLAGS EXEEXT EXTRA_CFLAGS
--- a/src/gcc.mk	Wed Mar 16 08:57:09 2011 +0100
+++ b/src/gcc.mk	Thu Mar 17 05:05:00 2011 +1100
@@ -54,4 +54,20 @@
      echo 'PKG_CONFIG_PATH="$$PKG_CONFIG_PATH_$(subst -,_,$(TARGET))" PKG_CONFIG_LIBDIR='\''$(PREFIX)/$(TARGET)/lib/pkgconfig'\'' exec pkg-config --static "$$@"') \
              > '$(PREFIX)/bin/$(TARGET)-pkg-config'
     chmod 0755 '$(PREFIX)/bin/$(TARGET)-pkg-config'
+    
+    # create the CMake toolchain file
+    [ -d '$(dir $(CMAKE_TOOLCHAIN_FILE))' ] || mkdir -p '$(dir $(CMAKE_TOOLCHAIN_FILE))'
+    (echo 'set(BUILD_SHARED_LIBS OFF)'; \
+     echo 'set(CMAKE_SYSTEM_NAME Windows)'; \
+     echo 'set(CMAKE_FIND_ROOT_PATH $(PREFIX)/$(TARGET))'; \
+     echo 'set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)'; \
+     echo 'set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)'; \
+     echo 'set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)'; \
+     echo 'set(CMAKE_C_COMPILER $(PREFIX)/bin/$(TARGET)-gcc)'; \
+     echo 'set(CMAKE_CXX_COMPILER $(PREFIX)/bin/$(TARGET)-g++)'; \
+     echo 'set(CMAKE_RC_COMPILER $(PREFIX)/bin/$(TARGET)-windres)'; \
+     echo 'set(PKG_CONFIG_EXECUTABLE $(PREFIX)/bin/$(TARGET)-pkg-config)'; \
+     echo 'set(CMAKE_INSTALL_PREFIX $(PREFIX)/$(TARGET) CACHE PATH "Installation Prefix")'; \
+     echo 'set(CMAKE_BUILD_TYPE Release CACHE STRING "Debug|Release|RelWithDebInfo|MinSizeRel")') \
+     > '$(CMAKE_TOOLCHAIN_FILE)'
 endef
--- a/src/openal.mk	Wed Mar 16 08:57:09 2011 +0100
+++ b/src/openal.mk	Thu Mar 17 05:05:00 2011 +1100
@@ -19,19 +19,8 @@
 endef
 
 define $(PKG)_BUILD
-    cd '$(1)/build' && cmake ..                            \
-        -DCMAKE_SYSTEM_NAME=Windows                        \
-        -DCMAKE_FIND_ROOT_PATH='$(PREFIX)/$(TARGET)'       \
-        -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER          \
-        -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY           \
-        -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY           \
-        -DCMAKE_C_COMPILER='$(PREFIX)/bin/$(TARGET)-gcc'   \
-        -DCMAKE_CXX_COMPILER='$(PREFIX)/bin/$(TARGET)-g++' \
-        -DCMAKE_INCLUDE_PATH='$(PREFIX)/$(TARGET)/include' \
-        -DCMAKE_LIB_PATH='$(PREFIX)/$(TARGET)/lib'         \
-        -DPKG_CONFIG_EXECUTABLE=$(TARGET)-pkg-config       \
-        -DCMAKE_INSTALL_PREFIX='$(PREFIX)/$(TARGET)'       \
-        -DCMAKE_BUILD_TYPE=Release                         \
+    cd '$(1)/build' && cmake .. \
+        -DCMAKE_TOOLCHAIN_FILE=$(CMAKE_TOOLCHAIN_FILE) \
         -DLIBTYPE=STATIC
     $(MAKE) -C '$(1)/build' -j '$(JOBS)' install
 
--- a/src/openscenegraph.mk	Wed Mar 16 08:57:09 2011 +0100
+++ b/src/openscenegraph.mk	Thu Mar 17 05:05:00 2011 +1100
@@ -22,24 +22,13 @@
 endef
 
 define $(PKG)_BUILD
-    cd '$(1)' && cmake .                                   \
-        -DCMAKE_SYSTEM_NAME=Windows                        \
-        -DCMAKE_FIND_ROOT_PATH='$(PREFIX)/$(TARGET)'       \
-        -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER          \
-        -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY           \
-        -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY           \
-        -DCMAKE_C_COMPILER='$(PREFIX)/bin/$(TARGET)-gcc'   \
-        -DCMAKE_CXX_COMPILER='$(PREFIX)/bin/$(TARGET)-g++' \
-        -DCMAKE_CXX_FLAGS=-D__STDC_CONSTANT_MACROS         \
-        -DCMAKE_INCLUDE_PATH='$(PREFIX)/$(TARGET)/include' \
-        -DCMAKE_LIB_PATH='$(PREFIX)/$(TARGET)/lib'         \
-        -DPKG_CONFIG_EXECUTABLE=$(TARGET)-pkg-config       \
-        -DCMAKE_INSTALL_PREFIX='$(PREFIX)/$(TARGET)'       \
-        -DCMAKE_BUILD_TYPE=Release                         \
-        -DCMAKE_HAVE_PTHREAD_H=OFF                         \
-        -DDYNAMIC_OPENTHREADS=OFF                          \
-        -DDYNAMIC_OPENSCENEGRAPH=OFF                       \
-        -DBUILD_OSG_APPLICATIONS=OFF                       \
+    cd '$(1)' && cmake . \
+        -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
+        -DCMAKE_CXX_FLAGS=-D__STDC_CONSTANT_MACROS \
+        -DCMAKE_HAVE_PTHREAD_H=OFF \
+        -DDYNAMIC_OPENTHREADS=OFF \
+        -DDYNAMIC_OPENSCENEGRAPH=OFF \
+        -DBUILD_OSG_APPLICATIONS=OFF \
         -D_OPENTHREADS_ATOMIC_USE_GCC_BUILTINS_EXITCODE=1
     $(MAKE) -C '$(1)' -j '$(JOBS)' install
 endef
--- a/src/physfs.mk	Wed Mar 16 08:57:09 2011 +0100
+++ b/src/physfs.mk	Thu Mar 17 05:05:00 2011 +1100
@@ -19,27 +19,16 @@
 endef
 
 define $(PKG)_BUILD
-    cd '$(1)' && cmake .                                   \
-        -DCMAKE_SYSTEM_NAME=Windows                        \
-        -DCMAKE_FIND_ROOT_PATH='$(PREFIX)/$(TARGET)'       \
-        -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER          \
-        -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY           \
-        -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY           \
-        -DCMAKE_C_COMPILER='$(PREFIX)/bin/$(TARGET)-gcc'   \
-        -DCMAKE_CXX_COMPILER='$(PREFIX)/bin/$(TARGET)-g++' \
-        -DCMAKE_CXX_FLAGS=-D__STDC_CONSTANT_MACROS         \
-        -DCMAKE_INCLUDE_PATH='$(PREFIX)/$(TARGET)/include' \
-        -DCMAKE_LIB_PATH='$(PREFIX)/$(TARGET)/lib'         \
-        -DCMAKE_INSTALL_PREFIX='$(PREFIX)/$(TARGET)'       \
-        -DCMAKE_BUILD_TYPE=Release                         \
-        -DPHYSFS_BUILD_SHARED=FALSE                        \
-        -DPHYSFS_INTERNAL_ZLIB=FALSE                       \
-        -DPHYSFS_BUILD_TEST=FALSE                          \
+    cd '$(1)' && cmake . \
+        -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
+        -DPHYSFS_BUILD_SHARED=FALSE \
+        -DPHYSFS_INTERNAL_ZLIB=FALSE \
+        -DPHYSFS_BUILD_TEST=FALSE \
         -DPHYSFS_BUILD_WX_TEST=FALSE
         $(MAKE) -C '$(1)' -j '$(JOBS)' install
 
     '$(TARGET)-gcc' \
-        -W -Wall -Werror -ansi -pedantic -std=c99\
+        -W -Wall -Werror -ansi -pedantic -std=c99 \
         '$(2).c' -o '$(PREFIX)/$(TARGET)/bin/test-physfs.exe' \
         -lphysfs -lz
 endef
--- a/src/taglib.mk	Wed Mar 16 08:57:09 2011 +0100
+++ b/src/taglib.mk	Thu Mar 17 05:05:00 2011 +1100
@@ -20,19 +20,8 @@
 
 define $(PKG)_BUILD
     mkdir '$(1)/build'
-    cd '$(1)/build' && cmake ..                            \
-        -DCMAKE_SYSTEM_NAME=Windows                        \
-        -DCMAKE_FIND_ROOT_PATH='$(PREFIX)/$(TARGET)'       \
-        -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER          \
-        -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY           \
-        -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY           \
-        -DCMAKE_C_COMPILER='$(PREFIX)/bin/$(TARGET)-gcc'   \
-        -DCMAKE_CXX_COMPILER='$(PREFIX)/bin/$(TARGET)-g++' \
-        -DCMAKE_INCLUDE_PATH='$(PREFIX)/$(TARGET)/include' \
-        -DCMAKE_LIB_PATH='$(PREFIX)/$(TARGET)/lib'         \
-        -DPKG_CONFIG_EXECUTABLE=$(TARGET)-pkg-config       \
-        -DCMAKE_INSTALL_PREFIX='$(PREFIX)/$(TARGET)'       \
-        -DCMAKE_BUILD_TYPE=Release                         \
+    cd '$(1)/build' && cmake .. \
+        -DCMAKE_TOOLCHAIN_FILE=$(CMAKE_TOOLCHAIN_FILE) \
         -DENABLE_STATIC=ON
     $(MAKE) -C '$(1)/build' -j '$(JOBS)' install
 endef
--- a/src/vigra.mk	Wed Mar 16 08:57:09 2011 +0100
+++ b/src/vigra.mk	Thu Mar 17 05:05:00 2011 +1100
@@ -27,23 +27,12 @@
     $(SED) -i 's,\bSHARED\b,STATIC,' '$(1)/config/VIGRA_ADD_NUMPY_MODULE.cmake'
     $(SED) -i 's,\bSHARED\b,STATIC,' '$(1)/vigranumpy/test/CMakeLists.txt'
     mkdir '$(1)/build'
-    cd '$(1)/build' && cmake ..                            \
-        -DCMAKE_SYSTEM_NAME=Windows                        \
-        -DCMAKE_FIND_ROOT_PATH='$(PREFIX)/$(TARGET)'       \
-        -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER          \
-        -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY           \
-        -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY           \
-        -DCMAKE_C_COMPILER='$(PREFIX)/bin/$(TARGET)-gcc'   \
-        -DCMAKE_CXX_COMPILER='$(PREFIX)/bin/$(TARGET)-g++' \
-        -DCMAKE_INCLUDE_PATH='$(PREFIX)/$(TARGET)/include' \
-        -DCMAKE_LIB_PATH='$(PREFIX)/$(TARGET)/lib'         \
-        -DPKG_CONFIG_EXECUTABLE=$(TARGET)-pkg-config       \
-        -DCMAKE_INSTALL_PREFIX='$(PREFIX)/$(TARGET)'       \
-        -DCMAKE_BUILD_TYPE=Release                         \
-        -DLIBTYPE=STATIC                                   \
-        -DVIGRA_STATIC_LIB=1                               \
-        -DWITH_HDF5=OFF                                    \
-        -DWITH_VIGRANUMPY=OFF                              \
+    cd '$(1)/build' && cmake .. \
+        -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
+        -DLIBTYPE=STATIC \
+        -DVIGRA_STATIC_LIB=1 \
+        -DWITH_HDF5=OFF \
+        -DWITH_VIGRANUMPY=OFF \
         -DWITH_VALGRIND=OFF
     $(MAKE) -C '$(1)/build' -j '$(JOBS)' install