Skip to content

Commit 053a248

Browse files
author
Soeren Sonnenburg
committed
Merge branch 'release/3.2.0'
2 parents 4ee2651 + 6dca06f commit 053a248

File tree

111 files changed

+3179
-698
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

111 files changed

+3179
-698
lines changed

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,6 @@ configure.log
111111
/examples/undocumented/libshogun/*
112112
!/examples/undocumented/libshogun/*.cpp
113113
!/examples/undocumented/libshogun/CMakeLists.txt
114-
examples/undocumented/python_modular/*
115114
!/examples/undocumented/libshogun/tools/
116115
!examples/undocumented/python_modular/graphical/
117116
!examples/undocumented/python_modular/*.py

.travis.yml

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,16 @@ notifications:
1313
- "it's %{author}'s turn to pay the next round of drinks for the massacre he caused in %{repository}: %{build_url}"
1414
matrix:
1515
include:
16+
- compiler: gcc
17+
env: CMAKE_OPTIONS="-DCMAKE_BUILD_TYPE=Debug -DENABLE_COVERAGE=ON" CUSTOM_PKG="sudo pip install -q cpp-coveralls" COVERALLS=1
1618
- compiler: clang
1719
python: 2.7
1820
language: python
1921
env: CMAKE_OPTIONS="-DPythonModular=ON -DTRAVIS_DISABLE_UNIT_TESTS=ON -DTRAVIS_DISABLE_LIBSHOGUN_TESTS=ON" EXTRA_PACKAGES="python-scipy swig2.0" CC=clang CXX=clang++
2022
- compiler: clang
2123
python: 3.3
2224
language: python
23-
env: CMAKE_OPTIONS="-DPythonModular=ON -DTRAVIS_DISABLE_UNIT_TESTS=ON -DTRAVIS_DISABLE_LIBSHOGUN_TESTS=ON" EXTRA_PACKAGES="swig2.0" CC=clang CXX=clang++ PIP_ARGS=" -I --use-wheel --find-links=http://cache27diy-cpycloud.rhcloud.com/3.3/"
25+
env: CMAKE_OPTIONS="-DPythonModular=ON -DTRAVIS_DISABLE_UNIT_TESTS=ON -DTRAVIS_DISABLE_LIBSHOGUN_TESTS=ON" EXTRA_PACKAGES="swig2.0" CC=clang CXX=clang++ PIP_ARGS=" -I --no-index --find-links=http://cache27diy-cpycloud.rhcloud.com/3.3/"
2426
- compiler: clang
2527
rvm: 1.8.7
2628
language: ruby
@@ -42,21 +44,15 @@ matrix:
4244
allow_failures:
4345
- compiler: clang
4446
env: CMAKE_OPTIONS="-DRModular=ON -DTRAVIS_DISABLE_UNIT_TESTS=ON -DTRAVIS_DISABLE_LIBSHOGUN_TESTS=ON" EXTRA_PACKAGES="r-base-core swig2.0" CC=clang CXX=clang++
45-
- compiler: clang
46-
python: 3.3
47-
language: python
48-
env: CMAKE_OPTIONS="-DPythonModular=ON -DTRAVIS_DISABLE_UNIT_TESTS=ON -DTRAVIS_DISABLE_LIBSHOGUN_TESTS=ON" EXTRA_PACKAGES="swig2.0" CC=clang CXX=clang++ PIP_ARGS=" -I --use-wheel --find-links=http://cache27diy-cpycloud.rhcloud.com/3.3/"
49-
- language: objective-c
50-
env: OSX=1
5147
virtualenv:
5248
system_site_packages: true
5349
before_install:
5450
- if [ -z $OSX ] ; then sudo apt-add-repository -y ppa:kubuntu-ppa/backports ; sudo apt-get update -qq ; fi
5551
- if [ -z $OSX ] ; then sudo apt-add-repository -y ppa:dr-graef/octave-3.6.precise ; sudo apt-get update -qq ; else brew update ; fi
56-
- if [ -z $OSX ] ; then sudo apt-get install -qq libbz2-dev cdbs libarpack2-dev libatlas-base-dev libblas-dev libglpk-dev libhdf5-serial-dev zlib1g-dev libxml2-dev libreadline6-dev libreadline-dev libsnappy-dev liblzo2-dev liblzma-dev liblapack-dev gdb cmake python-jinja2 $EXTRA_PACKAGES ; else brew install cmake ; fi
52+
- if [ -z $OSX ] ; then sudo apt-get install -qq libbz2-dev cdbs libarpack2-dev libatlas-base-dev libblas-dev libglpk-dev libhdf5-serial-dev zlib1g-dev libxml2-dev libreadline6-dev libreadline-dev libsnappy-dev liblzo2-dev liblzma-dev liblapack-dev gdb cmake python-jinja2 $EXTRA_PACKAGES ; else brew list cmake || brew install cmake ; fi
5753
- if [ $OSX ] ; then curl -O https://raw.github.com/rudix-mac/package-manager/master/rudix.py && sudo python rudix.py install rudix && sudo rudix install jinja2 ; fi
5854
- $CUSTOM_PKG
59-
- if [[ $TRAVIS_PYTHON_VERSION == '3.3' ]] ; then pip install -I git+https://github.com/pypa/pip@42102e9deaea99db08b681d06906c2945f6f95e2#egg=pip ; fi
55+
- if [[ $TRAVIS_PYTHON_VERSION == '3.3' ]] ; then pip install -I git+https://github.com/pypa/pip@1.5#egg=pip ; fi
6056
- if [[ $TRAVIS_PYTHON_VERSION == '3.3' ]] ; then pip install -I -U setuptools ; fi
6157
- if [[ $TRAVIS_PYTHON_VERSION == '3.3' ]] ; then pip install wheel ; fi
6258
- if [[ $TRAVIS_PYTHON_VERSION == '3.3' ]] ; then pip install $PIP_ARGS numpy ; fi
@@ -67,6 +63,9 @@ before_script:
6763
- cd build
6864
script:
6965
- cmake -DENABLE_TESTING=ON -DBUNDLE_EIGEN=ON -DBUNDLE_JSON=ON -DBUNDLE_NLOPT=ON $CMAKE_OPTIONS ..
70-
- if [ -z $CMAKE_OPTIONS ] ; then make -j 2 ; else make -j 4 ; fi
66+
- if [ -z "$CMAKE_OPTIONS" -o -n "$COVERALLS" ] ; then make -j 2 ; else make -j 4 ; fi
7167
- sudo make install
7268
- ctest --output-on-failure -j 2
69+
after_success:
70+
- cd ..
71+
- coveralls -e tests -e examples -e cmake -e benchmarks -e src/interfaces -e /usr/include -e build/GoogleMock -e build/NLopt -e build/Eigen3 -e build/JSON -e build/CMakeFiles -E '.*\.h' > /dev/null

CMakeLists.txt

Lines changed: 66 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,11 @@ SET(THIRD_PARTY_DIR ${CMAKE_SOURCE_DIR}/third_party)
4444
SET(LIBSHOGUN_SRC_DIR ${CMAKE_SOURCE_DIR}/src/shogun)
4545
SET(COMMON_MODULAR_SRC_DIR ${CMAKE_SOURCE_DIR}/src/interfaces/modular/)
4646

47+
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src
48+
${CMAKE_SOURCE_DIR}/src/shogun
49+
${CMAKE_BINARY_DIR}/src
50+
${CMAKE_BINARY_DIR}/src/shogun)
51+
4752
# check whether any of the modular interfaces are turned ON
4853
IF (
4954
PythonModular OR LuaModular OR RModular OR
@@ -184,15 +189,9 @@ ENDIF()
184189
# clang with -std=c++11 and -stdlib=libc++ does not work
185190
# well with swig generated cxx hence disable c++11 for this case.
186191

187-
# TODO: until swig 2.0.11 does not support compilation with libc++
188-
# There are PRs against SWIG HEAD to fix this hence it needs to be checked
189-
# which later version can support compilation with libc++
190-
IF (COMPILE_MODULAR_INTERFACE AND ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") AND NOT SWIG_VERSION VERSION_GREATER "2.0.11")
191-
SET(CMAKE_CXX_FLAGS "-stdlib=libstdc++ ${CMAKE_CXX_FLAGS}")
192-
SET(SWIG_CXX_COMPILER_FLAGS "-stdlib=libstdc++ ${SWIG_CXX_COMPILER_FLAGS}")
193-
ENDIF()
194-
195-
IF (NOT ((CYGWIN AND ENABLE_TESTING) OR (DARWIN AND COMPILE_MODULAR_INTERFACE)))
192+
# this has been only fixed in swig 2.0.12 or later.
193+
IF (NOT ((CYGWIN AND ENABLE_TESTING) OR (DARWIN AND COMPILE_MODULAR_INTERFACE
194+
AND SWIG_VERSION VERSION_LESS "2.0.12")))
196195
INCLUDE(CheckCXX11Features)
197196

198197
IF(_HAS_CXX11_FLAG)
@@ -212,6 +211,12 @@ IF (NOT ((CYGWIN AND ENABLE_TESTING) OR (DARWIN AND COMPILE_MODULAR_INTERFACE)))
212211
IF (HAVE_CXX11_ATOMIC)
213212
LIST(APPEND DEFINES HAVE_CXX11_ATOMIC)
214213
ENDIF()
214+
ELSEIF(DARWIN AND ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") AND NOT (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "5.0.0"))
215+
# osx clang 5.0.0 or later uses libc++ by default
216+
# this is causing problems with source generated by swig version earlier than 3.0.0
217+
# force to use libstdc++ for compilation of sources
218+
SET(CMAKE_CXX_FLAGS "-stdlib=libstdc++ ${CMAKE_CXX_FLAGS}")
219+
SET(SWIG_CXX_COMPILER_FLAGS "-stdlib=libstdc++ ${SWIG_CXX_COMPILER_FLAGS}")
215220
ENDIF()
216221

217222
include(CheckIncludeFileCXX)
@@ -825,11 +830,15 @@ IF (PythonModular OR PythonStatic)
825830
SET(TARGET_SWIGFLAGS "-builtin\;-modern\;-modernargs")
826831
ENDIF()
827832

828-
add_subdirectory(src/interfaces/python_modular)
833+
IF(EXISTS ${CMAKE_SOURCE_DIR}/src/interfaces/python_modular)
834+
add_subdirectory(${CMAKE_SOURCE_DIR}/src/interfaces/python_modular)
835+
ENDIF()
829836
ENDIF()
830837

831838
IF(PythonStatic)
832-
add_subdirectory(src/interfaces/python_static)
839+
IF(EXISTS ${CMAKE_SOURCE_DIR}/src/interfaces/python_static)
840+
add_subdirectory(${CMAKE_SOURCE_DIR}/src/interfaces/python_static)
841+
ENDIF()
833842
ENDIF()
834843
ENDIF()
835844

@@ -843,7 +852,9 @@ IF (LuaModular)
843852
ENDIF ()
844853
SET(LUA_EXECUTABLE lua)
845854
UNSET(TARGET_SWIGFLAGS)
846-
add_subdirectory(src/interfaces/lua_modular)
855+
IF(EXISTS ${CMAKE_SOURCE_DIR}/src/interfaces/lua_modular)
856+
add_subdirectory(${CMAKE_SOURCE_DIR}/src/interfaces/lua_modular)
857+
ENDIF()
847858
ENDIF()
848859

849860
# java modular
@@ -865,7 +876,9 @@ IF (JavaModular)
865876
ENDIF()
866877

867878
SET(TARGET_SWIGFLAGS "-package\;org.shogun")
868-
add_subdirectory(src/interfaces/java_modular)
879+
IF(EXISTS ${CMAKE_SOURCE_DIR}/src/interfaces/java_modular)
880+
add_subdirectory(${CMAKE_SOURCE_DIR}/src/interfaces/java_modular)
881+
ENDIF()
869882
ENDIF()
870883

871884
# ruby modular
@@ -874,7 +887,7 @@ IF (RubyModular)
874887
FIND_PACKAGE(RubyNArray REQUIRED)
875888
SET(NARRAY_LIB ${RUBY_NARRAY_LIBRARY})
876889
UNSET(TARGET_SWIGFLAGS)
877-
add_subdirectory(src/interfaces/ruby_modular)
890+
add_subdirectory(${CMAKE_SOURCE_DIR}/src/interfaces/ruby_modular)
878891
ENDIF()
879892

880893
# octave modular
@@ -886,19 +899,25 @@ IF (OctaveModular OR OctaveStatic)
886899

887900
IF(OctaveModular)
888901
UNSET(TARGET_SWIGFLAGS)
889-
add_subdirectory(src/interfaces/octave_modular)
902+
IF(EXISTS ${CMAKE_SOURCE_DIR}/src/interfaces/octave_modular)
903+
add_subdirectory(${CMAKE_SOURCE_DIR}/src/interfaces/octave_modular)
904+
ENDIF()
890905
ENDIF()
891906

892907
IF(OctaveStatic)
893-
add_subdirectory(src/interfaces/octave_static)
908+
IF(EXISTS ${CMAKE_SOURCE_DIR}/src/interfaces/octave_static)
909+
add_subdirectory(${CMAKE_SOURCE_DIR}/src/interfaces/octave_static)
910+
ENDIF()
894911
ENDIF()
895912
ENDIF()
896913

897914
# csharp modular
898915
IF (CSharpModular)
899916
FIND_PACKAGE(CSharp REQUIRED)
900917
UNSET(TARGET_SWIGFLAGS)
901-
add_subdirectory(src/interfaces/csharp_modular)
918+
IF(EXISTS ${CMAKE_SOURCE_DIR}/src/interfaces/csharp_modular)
919+
add_subdirectory(${CMAKE_SOURCE_DIR}/src/interfaces/csharp_modular)
920+
ENDIF()
902921
ENDIF()
903922

904923
# r modular
@@ -907,32 +926,42 @@ IF (RModular OR RStatic)
907926

908927
IF (RModular)
909928
UNSET(TARGET_SWIGFLAGS)
910-
add_subdirectory(src/interfaces/r_modular)
929+
IF(EXISTS ${CMAKE_SOURCE_DIR}/src/interfaces/r_modular)
930+
add_subdirectory(${CMAKE_SOURCE_DIR}/src/interfaces/r_modular)
931+
ENDIF()
911932
ENDIF()
912933

913934
IF (RStatic)
914-
add_subdirectory(src/interfaces/r_static)
935+
IF(EXISTS ${CMAKE_SOURCE_DIR}/src/interfaces/r_static)
936+
add_subdirectory(${CMAKE_SOURCE_DIR}/src/interfaces/r_static)
937+
ENDIF()
915938
ENDIF()
916939
ENDIF()
917940

918941
# perl modular
919942
IF (PerlModular)
920943
FIND_PACKAGE(FindPerlLibs REQUIRED)
921944
UNSET(TARGET_SWIGFLAGS)
922-
#add_subdirectory(src/interfaces/perl_modular)
945+
IF(EXISTS ${CMAKE_SOURCE_DIR}/src/interfaces/perl_modular)
946+
#add_subdirectory(${CMAKE_SOURCE_DIR}/src/interfaces/perl_modular)
947+
ENDIF()
923948
ENDIF()
924949

925950
IF (MatlabStatic)
926951
FIND_PACKAGE(Matlab REQUIRED)
927952
IF(MATLAB_FOUND)
928-
add_subdirectory(src/interfaces/matlab_static)
953+
IF(EXISTS ${CMAKE_SOURCE_DIR}/src/interfaces/matlab_modular)
954+
add_subdirectory(${CMAKE_SOURCE_DIR}/src/interfaces/matlab_static)
955+
ENDIF()
929956
ELSE()
930957
MESSAGE(FATAL_ERROR "Could not find Matlab, which is required for compiling matlab_static interface. Try setting MATLAB_ROOT enviroment variable to the right path")
931958
ENDIF()
932959
ENDIF()
933960

934961
IF (CmdLineStatic)
935-
add_subdirectory(src/interfaces/cmdline_static)
962+
IF(EXISTS ${CMAKE_SOURCE_DIR}/src/interfaces/cmdline_static)
963+
add_subdirectory(${CMAKE_SOURCE_DIR}/src/interfaces/cmdline_static)
964+
ENDIF()
936965
ENDIF()
937966

938967
IF (SVMLight)
@@ -945,6 +974,7 @@ OPTION(BUILD_DASHBOARD_REPORTS "Set to ON to activate reporting of Shogun builds
945974
IF(BUILD_DASHBOARD_REPORTS)
946975
file(TO_CMAKE_PATH "${CMAKE_SOURCE_DIR}/configs/valgrind.supp" VALGRIND_SUPPRESSION_FILE)
947976
SET(MEMORYCHECK_SUPPRESSIONS_FILE ${VALGRIND_SUPPRESSION_FILE} CACHE FILEPATH "File that contains suppressions for the memory checker")
977+
SET(MEMORYCHECK_COMMAND_OPTIONS "-q --tool=memcheck --leak-check=full --track-origins=yes --num-callers=50 --error-exitcode=1")
948978
include(CTest)
949979
ENDIF()
950980

@@ -957,13 +987,15 @@ IF(ENABLE_TESTING)
957987
enable_testing()
958988
ENDIF()
959989

960-
# add integration tests
961-
add_subdirectory(tests/integration)
990+
IF(EXISTS ${CMAKE_SOURCE_DIR}/tests)
991+
# add integration tests
992+
add_subdirectory(${CMAKE_SOURCE_DIR}/tests/integration)
962993

963994

964-
# add unit tests
965-
IF (NOT TRAVIS_DISABLE_UNIT_TESTS)
966-
add_subdirectory(tests/unit)
995+
# add unit tests
996+
IF (NOT TRAVIS_DISABLE_UNIT_TESTS)
997+
add_subdirectory(${CMAKE_SOURCE_DIR}/tests/unit)
998+
ENDIF()
967999
ENDIF()
9681000
ENDIF()
9691001

@@ -973,10 +1005,14 @@ SET(CONFIGURE_OPTIONS "TODO")
9731005
SET(COMPFLAGS_CPP "${MERGED_CXX_FLAGS}")
9741006
SET(LINKFLAGS "${POSTLINKFLAGS}")
9751007

976-
add_subdirectory(src/shogun)
1008+
IF(EXISTS ${CMAKE_SOURCE_DIR}/src/shogun)
1009+
add_subdirectory(${CMAKE_SOURCE_DIR}/src/shogun)
1010+
ENDIF()
9771011

978-
IF(BUILD_EXAMPLES OR ENABLE_TESTING)
979-
add_subdirectory(examples)
1012+
IF(EXISTS ${CMAKE_SOURCE_DIR}/examples)
1013+
IF(BUILD_EXAMPLES OR ENABLE_TESTING)
1014+
add_subdirectory(${CMAKE_SOURCE_DIR}/examples)
1015+
ENDIF()
9801016
ENDIF()
9811017

9821018
# general cpack settings

NEWS

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,23 @@
1+
2014-02-17 Soeren Sonnenburg <[email protected]>
2+
3+
* SHOGUN Release version 3.2.0 (libshogun 16.0, data 0.8, parameter 1)
4+
* This release also contains several cleanups and bugfixes:
5+
* Features:
6+
- Fully support python3 now
7+
- Add mini-batch k-means [Parijat Mazumdar]
8+
- Add k-means++ [Parijat Mazumdar]
9+
- Add sub-sequence string kernel [lambday]
10+
* Bugfixes:
11+
- Compile fixes for upcoming swig3.0
12+
- Speedup for gaussian process' apply()
13+
- Improve unit / integration test checks
14+
- libbmrm uninitialized memory reads
15+
- libocas uninitialized memory reads
16+
- Octave 3.8 compile fixes [Orion Poplawski]
17+
- Fix java modular compile error [Bjoern Esser]
18+
* Cleanup and API Changes:
19+
- None
20+
121
2014-01-06 Soeren Sonnenburg <[email protected]>
222

323
* SHOGUN Release version 3.1.1 (libshogun 15.1, data 0.7, parameter 1)

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,13 @@
44
Develop branch build status:
55

66
[![Build Status](https://travis-ci.org/shogun-toolbox/shogun.png?branch=develop)](https://travis-ci.org/shogun-toolbox/shogun)
7+
[![Coverage Status](https://coveralls.io/repos/shogun-toolbox/shogun/badge.png?branch=develop)](https://coveralls.io/r/shogun-toolbox/shogun?branch=develop)
78

89
Buildbot: http://buildbot.shogun-toolbox.org/waterfall.
910

1011
Quick links to this file:
1112

13+
* [Quickstart](doc/md/QUICKSTART.md)
1214
* [Introduction](#introduction)
1315
* [Interfaces](#interfaces)
1416
* [Platforms](#platforms)

cmake/CommonModularInterface.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ MACRO(GENERATE_MODULAR_TARGET MODULAR_NAME MODULAR_DIR MODULAR_LIBARIES)
22
if(SYSTEM_INCLUDES)
33
INCLUDE_DIRECTORIES(SYSTEM ${SYSTEM_INCLUDES})
44
endif()
5-
INCLUDE_DIRECTORIES(${INCLUDES} ${CMAKE_SOURCE_DIR}/src)
5+
INCLUDE_DIRECTORIES(${INCLUDES})
66

77
# transform defines to -D<definition> string
88
foreach(D IN LISTS DEFINES)
@@ -78,4 +78,4 @@ ELSE()
7878
#TODO add scrubing
7979
ENDIF()
8080

81-
ENDMACRO()
81+
ENDMACRO()

cmake/FindOctave.cmake

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -119,14 +119,16 @@ find_library( OCTAVE_OCTAVE_LIBRARY
119119
NAMES octave liboctave
120120
HINTS ${OCTAVE_LIBRARIES_PATHS}
121121
)
122-
find_library( OCTAVE_CRUFT_LIBRARY
123-
NAMES cruft libcruft
124-
HINTS ${OCTAVE_LIBRARIES_PATHS}
125-
)
126-
127122
set ( OCTAVE_LIBRARIES ${OCTAVE_OCTINTERP_LIBRARY} )
128123
list ( APPEND OCTAVE_LIBRARIES ${OCTAVE_OCTAVE_LIBRARY} )
129-
list ( APPEND OCTAVE_LIBRARIES ${OCTAVE_CRUFT_LIBRARY} )
124+
125+
if ( ${OCTAVE_VERSION_STRING} LESS 3.8.0 )
126+
find_library( OCTAVE_CRUFT_LIBRARY
127+
NAMES cruft libcruft
128+
HINTS ${OCTAVE_LIBRARIES_PATHS}
129+
)
130+
list ( APPEND OCTAVE_LIBRARIES ${OCTAVE_CRUFT_LIBRARY} )
131+
endif ()
130132

131133
find_path ( OCTAVE_INCLUDE_DIR
132134
NAMES mex.h

cmake/checkgdb.cmake

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@ if (RESULT)
66
# --args ${EXECUTABLE} ${FILE} ${ARGS}
77
# RESULT_VARIABLE GDB_RESULT)
88
#endif()
9-
endif()
9+
MESSAGE( FATAL_ERROR "FAIL: ${ARGS}, EXITCODE: ${RESULT}" )
10+
endif (RESULT)

cmake/version.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ ELSEIF(EXISTS "${ROOT_DIR}/NEWS")
6565
SET(VERSION_SUB "0${VERSION_SUB}")
6666
ENDIF()
6767
SET(REVISION ${VERSION_MAJOR}${VERSION_MINOR}${VERSION_SUB})
68-
EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "import os.path,time;print time.strftime('%Y-%m-%d %H:%M', time.gmtime(os.path.getmtime('${ROOT_DIR}/NEWS')))"
68+
EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "import os.path,time;print (time.strftime('%Y-%m-%d %H:%M', time.gmtime(os.path.getmtime('${ROOT_DIR}/NEWS'))))"
6969
OUTPUT_VARIABLE DATEINFO
7070
OUTPUT_STRIP_TRAILING_WHITESPACE
7171
)

data

Submodule data updated 747 files

0 commit comments

Comments
 (0)