Warning, /graphics/kst-plot/cmake/3rdparty/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 cmake_minimum_required(VERSION 2.8) 0002 0003 # figure out if we use MinGW with Ninja: call with -DCC=gcc 0004 if(WIN32 AND CMAKE_GENERATOR MATCHES Ninja AND CC MATCHES gcc) 0005 find_file(mingw_make mingw32-make.exe) 0006 get_filename_component(mingw_bin_dir ${mingw_make} PATH) 0007 set(CMAKE_RC_COMPILER ${mingw_bin_dir}/windres.exe) 0008 message("CMAKE_RC_COMPILER: ${CMAKE_RC_COMPILER}") 0009 endif() 0010 0011 project(3rdparty) 0012 0013 include(ExternalProject) 0014 0015 set(build_dir ${CMAKE_BINARY_DIR}/3rdparty) 0016 if(kst_3rdparty_dir) 0017 set(install_dir ${kst_3rdparty_dir}) 0018 else() 0019 set(install_dir ${build_dir}/installed) 0020 endif() 0021 set(generator -G${CMAKE_GENERATOR}) 0022 set(install_prefix -DCMAKE_INSTALL_PREFIX=${install_dir}) 0023 file(MAKE_DIRECTORY ${install_dir}) 0024 0025 if(CMAKE_BUILD_TYPE) 0026 set(build_type -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}) 0027 endif() 0028 message(STATUS "3rdparty build type: ${build_type}") 0029 if(MINGW AND CMAKE_GENERATOR MATCHES Ninja) 0030 set(rc_compiler -DCMAKE_RC_COMPILER=${CMAKE_RC_COMPILER}) 0031 set(install_target install\\strip) 0032 else() 0033 set(install_target install/strip) 0034 endif() 0035 0036 if(NOT kst_make_program) 0037 set(kst_make_program ${CMAKE_MAKE_PROGRAM}) 0038 endif() 0039 0040 # make dependencies visible for cmake 0041 # http://public.kitware.com/Bug/view.php?id=13538 0042 macro(kst_external_static_lib targetName name lib) 0043 add_library(${targetName} STATIC IMPORTED GLOBAL) 0044 set_target_properties(${targetName} PROPERTIES IMPORTED_LOCATION ${install_dir}/lib/${lib}) 0045 add_dependencies(${targetName} ${name}) 0046 endmacro() 0047 0048 0049 0050 # GETDATA 0051 set(ext_src ${build_dir}/getdata/src/getdata) 0052 if(WIN32) 0053 set(ext_url http://sourceforge.net/projects/getdata/files/getdata/0.8.0/getdata_win-0.8.0.zip) 0054 set(ext_configure cmake ${ext_src}/cmake ${generator} ${rc_compiler} ${install_prefix} ${build_type}) 0055 set(ext_install ${install_target}) 0056 set(ext_make ${kst_make_program}) 0057 else() 0058 set(ver 0.8.5) 0059 set(ext_url http://sourceforge.net/projects/getdata/files/getdata/${ver}/getdata-${ver}.tar.gz) 0060 set(ext_configure ${ext_src}/configure --with-pic --enable-static --disable-shared --disable-fortran --disable-legacy-api 0061 --prefix=${install_dir} --mandir=${install_dir}/man --disable-perl ) 0062 set(ext_install install) 0063 set(ext_make ${CMAKE_MAKE_PROGRAM} CXXFLAGS=-fPIC CFLAGS=-fPIC) 0064 endif() 0065 ExternalProject_Add(getdata 0066 PREFIX ${build_dir}/getdata 0067 URL ${ext_url} 0068 SOURCE_DIR ${ext_src} 0069 CONFIGURE_COMMAND ${ext_configure} 0070 BUILD_IN_SOURCE OFF 0071 BUILD_COMMAND ${ext_make} 0072 INSTALL_COMMAND ${CMAKE_MAKE_PROGRAM} ${ext_install}) 0073 0074 if(APPLE) 0075 set(gddeps -lbz2 -lz) 0076 endif() 0077 set(GETDATA_INCLUDEDIR ${install_dir}/include PARENT_SCOPE) 0078 kst_external_static_lib(gdc_build libgetdata libgetdata.a) 0079 kst_external_static_lib(gdcpp_build libgetdata libgetdata++.a) 0080 set(GETDATA_LIBRARIES gdcpp_build gdc_build ${gddeps} PARENT_SCOPE) 0081 0082 0083 # ZLIB needed by MATIO 0084 set(ext_src ${build_dir}/zlib/src/zlib) 0085 if(WIN32) 0086 set(ext_url http://sourceforge.net/projects/kst/files/3rdparty/zlib-develop-mingw-fixed.zip) 0087 set(ext_configure cmake ${ext_src} ${generator} -DBUILD_SHARED_LIBS=0 ${rc_compiler} ${install_prefix} ${build_type}) 0088 set(ext_install ${install_target}) 0089 set(ext_insource OFF ) 0090 set(zlib_library libzlibstatic.a) 0091 set(ext_make ${kst_make_program}) 0092 else() 0093 set(ext_url http://zlib.net/zlib-1.2.8.tar.gz) 0094 set(ext_configure ${ext_src}/configure --static --prefix=${install_dir}) 0095 set(ext_install install) 0096 set(ext_insource ON) 0097 set(zlib_library libz.a) 0098 set(ext_make ${CMAKE_MAKE_PROGRAM} CXXFLAGS=-fPIC CFLAGS=-fPIC) 0099 endif() 0100 ExternalProject_Add(zlib 0101 PREFIX ${build_dir}/zlib 0102 URL ${ext_url} 0103 SOURCE_DIR ${ext_src} 0104 CONFIGURE_COMMAND ${ext_configure} 0105 BUILD_IN_SOURCE ${ext_insource} 0106 BUILD_COMMAND ${ext_make} 0107 INSTALL_COMMAND ${CMAKE_MAKE_PROGRAM} ${ext_install}) 0108 0109 kst_external_static_lib(zlib_build zlib ${zlib_library}) 0110 0111 # MATIO 0112 set(ext_src ${build_dir}/matio/src/matio) 0113 if(WIN32) 0114 set(ext_url http://sourceforge.net/projects/kst/files/3rdparty/matio-2012.03.14.zip) 0115 set(ext_configure cmake ${CMAKE_CURRENT_SOURCE_DIR}/matio 0116 -Dmatio_dir=${ext_src} 0117 -DZLIB_INCLUDE_DIR=${install_dir}/include 0118 -DZLIB_LIBRARY=${zlib_library} 0119 ${generator} ${rc_compiler} 0120 ${install_prefix} 0121 ${build_type}) 0122 set(ext_install ${install_target}) 0123 set(ext_insource OFF ) 0124 set(ext_make ${kst_make_program}) 0125 else() 0126 set(ext_url http://sourceforge.net/projects/matio/files/matio/1.5.2/matio-1.5.2.tar.gz) 0127 set(ext_configure ${ext_src}/configure --with-pic --enable-static --disable-shared --prefix=${install_dir} --with-zlib=${install_dir}) 0128 set(ext_install install) 0129 set(ext_insource ON) 0130 set(ext_make ${CMAKE_MAKE_PROGRAM} CXXFLAGS=-fPIC CFLAGS=-fPIC) 0131 endif() 0132 ExternalProject_Add(matio 0133 PREFIX ${build_dir}/matio 0134 URL ${ext_url} 0135 CONFIGURE_COMMAND ${ext_configure} 0136 BUILD_IN_SOURCE OFF 0137 BUILD_COMMAND ${ext_make} 0138 INSTALL_COMMAND ${CMAKE_MAKE_PROGRAM} ${ext_install}) 0139 add_dependencies(matio zlib) 0140 0141 set(MATIO_INCLUDEDIR ${install_dir}/include PARENT_SCOPE) 0142 kst_external_static_lib(matio_build matio libmatio.a) 0143 set(MATIO_LIBRARIES matio_build zlib_build PARENT_SCOPE) 0144 0145 0146 # NETCDF 0147 set(ext_src ${build_dir}/netcdf/src/netcdf) 0148 if(WIN32) 0149 set(ext_url ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4.1.1.tar.gz) 0150 set(ext_configure cmake ${CMAKE_CURRENT_SOURCE_DIR}/netcdf 0151 -Dnetcdf_sources=${build_dir}/netcdf/src/netcdf 0152 ${generator} ${rc_compiler} 0153 ${install_prefix} 0154 ${build_type}) 0155 set(ext_install ${install_target}) 0156 set(ext_insource OFF) 0157 set(ext_make ${kst_make_program}) 0158 else() 0159 set(ext_url ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4.1.3.tar.gz) 0160 set(ext_configure ${ext_src}/configure --with-pic --disable-netcdf-4 0161 --enable-static --disable-shared --disable-curl --disable-dap 0162 --prefix=${install_dir} --with-zlib=${install_dir}) 0163 set(ext_install install) 0164 set(ext_insource ON) 0165 set(ext_make ${CMAKE_MAKE_PROGRAM}) 0166 endif() 0167 ExternalProject_Add(netcdf 0168 PREFIX ${build_dir}/netcdf 0169 URL ${ext_url} 0170 CONFIGURE_COMMAND ${ext_configure} 0171 BUILD_IN_SOURCE OFF 0172 BUILD_COMMAND ${ext_make} 0173 INSTALL_COMMAND ${ext_make} ${ext_install}) 0174 0175 set(NETCDF_INCLUDEDIR ${install_dir}/include PARENT_SCOPE) 0176 kst_external_static_lib(netcdf_c_build netcdf libnetcdf.a) 0177 kst_external_static_lib(netcdf_cpp_build netcdf libnetcdf_c++.a) 0178 set(NETCDF_LIBRARY_C netcdf_c_build PARENT_SCOPE) 0179 set(NETCDF_LIBRARY_CPP netcdf_cpp_build PARENT_SCOPE) 0180 0181 # CFITSIO 0182 set(ext_src ${build_dir}/cfitsio/src/cfitsio) 0183 if(WIN32) 0184 set(ext_url ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/cfit3250.zip) 0185 set(ext_configure cmake ${CMAKE_CURRENT_SOURCE_DIR}/cfitsio 0186 -DCFIT_DIR=${build_dir}/cfitsio/src/cfitsio 0187 ${generator} ${rc_compiler} 0188 ${install_prefix} 0189 ${build_type}) 0190 set(ext_install ${install_target}) 0191 set(ext_insource OFF) 0192 set(ext_make ${kst_make_program}) 0193 else() 0194 set(ext_url ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/cfitsio3360.tar.gz) 0195 set(ext_configure ${ext_src}/configure --with-pic 0196 --enable-static --disable-shared 0197 --prefix=${install_dir} --with-zlib=${install_dir}) 0198 set(ext_install install) 0199 set(ext_insource ON) 0200 set(ext_make ${CMAKE_MAKE_PROGRAM} CXXFLAGS=-fPIC CFLAGS=-fPIC) 0201 endif() 0202 ExternalProject_Add(cfitsio 0203 PREFIX ${build_dir}/cfitsio 0204 URL ${ext_url} 0205 CONFIGURE_COMMAND ${ext_configure} 0206 BUILD_IN_SOURCE ${ext_insource} 0207 BUILD_COMMAND ${ext_make} 0208 INSTALL_COMMAND ${CMAKE_MAKE_PROGRAM} ${ext_install}) 0209 0210 0211 set(CFITSIO_INCLUDEDIR ${install_dir}/include/cfitsio PARENT_SCOPE) 0212 kst_external_static_lib(cfitsio_build cfitsio libcfitsio.a) 0213 set(CFITSIO_LIBRARIES cfitsio_build PARENT_SCOPE) 0214 0215 0216 0217 # GSL 0218 set(ext_src ${build_dir}/gsl/src/gsl) 0219 if(WIN32) 0220 set(ext_url http://sourceforge.net/projects/kst/files/3rdparty/gsl-1.14-patched.zip) 0221 set(ext_configure cmake ${CMAKE_CURRENT_SOURCE_DIR}/gsl 0222 -DGSL_DIR=${build_dir}/gsl/src/gsl 0223 ${generator} ${rc_compiler} 0224 ${install_prefix} 0225 ${build_type}) 0226 set(ext_install ${install_target}) 0227 set(ext_insource OFF) 0228 set(ext_make ${kst_make_program}) 0229 else() 0230 set(ext_url ftp://ftp.gnu.org/gnu/gsl/gsl-1.16.tar.gz) 0231 set(ext_configure ${ext_src}/configure --with-pic 0232 --enable-static --disable-shared 0233 --prefix=${install_dir} --with-zlib=${install_dir}) 0234 set(ext_install install) 0235 set(ext_insource ON) 0236 set(ext_make ${CMAKE_MAKE_PROGRAM}) 0237 endif() 0238 ExternalProject_Add(gsl 0239 PREFIX ${build_dir}/gsl 0240 URL ${ext_url} 0241 CONFIGURE_COMMAND ${ext_configure} 0242 BUILD_IN_SOURCE OFF 0243 BUILD_COMMAND ${ext_make} 0244 INSTALL_COMMAND ${ext_make} ${ext_install}) 0245 0246 if(APPLE) 0247 set(GSL_DEPS ${install_dir}/lib/libgslcblas.a) 0248 endif() 0249 set(GSL_INCLUDEDIR ${install_dir}/include PARENT_SCOPE) 0250 kst_external_static_lib(gsl_build gsl libgsl.a) 0251 set(GSL_LIBRARIES gsl_build ${GSL_DEPS} PARENT_SCOPE) 0252 0253 0254 0255 0256