Skip to content

Commit cc9d71a

Browse files
committed
Updated files for kissft in Linux
1 parent e9fe974 commit cc9d71a

4 files changed

Lines changed: 99 additions & 9 deletions

File tree

sources/jvxLibraries/third_party/git/kissfft/CMakeLists.txt

Lines changed: 49 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -51,20 +51,60 @@ if(${JVX_OS} MATCHES "windows")
5151
# message(FATAL_ERROR "KISSFFT: ${AYF_KISSFFT_INCLUDE_DIR} -- ${AYF_KISSFFT_LIBRARIES} -- ${AYF_KISSFFT_COMPILE_FLAGS}")
5252

5353
elseif(${JVX_OS} MATCHES "linux")
54-
## Install <sudo apt-get install libhdf5-dev>
55-
find_package(PkgConfig)
54+
55+
56+
57+
if(JVX_LINUX_NATIVE_INSTALLED_LIBS)
58+
find_package(kissfft REQUIRED)
59+
60+
message(FATAL_ERROR "-> KISSFFT -- ${OpenCV_LIBS} -- ${OpenCV_INCLUDE_DIRS}")
61+
62+
set(OPENCV_LIBRARY_PATH "${KissFft_INCLUDE_DIRS}" CACHE INTERNAL "kissfft include references")
63+
set(OPENCV_LIBRARIES ${KissFft_LIBS} CACHE INTERNAL "opencv library references")
64+
else()
65+
set(targetfolder kissfft)
5666

57-
set(targetfolder kissfft)
58-
set(archtoken glnx)
67+
set(archtoken glnx)
5968

60-
message("kissfft sub project not available. Starting script to download it.")
61-
execute_process(COMMAND ${mysh} -c "cd ${CMAKE_CURRENT_SOURCE_DIR} ; ./prepareModules-glnx.sh; exit")
62-
message("kissfft installation complete.")
69+
set(archtoken "${archtoken}")
70+
71+
set(dataformattoken "double")
72+
if(JVX_SYSTEM_USE_DATA_FORMAT_FLOAT)
73+
set(dataformattoken "float")
74+
endif()
75+
76+
set(AYF_KISSFFT_COMPILE_FLAGS "-Dkiss_fft_scalar=${dataformattoken}" CACHE INTERNAL "kissfft compile flags")
6377

64-
set(AYF_KISSFFT_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/${targetfolder}" CACHE INTERNAL "kissfft include references")
65-
set(AYF_KISSFFT_LIBRARIES "${CMAKE_CURRENT_SOURCE_DIR}/${targetfolder}/${archtoken}/lib/kissfft.a" CACHE INTERNAL "kissfft library references")
78+
set(AYF_KISSFFT_INSTALL_FOLDER "${targetfolder}-${archtoken}-${dataformattoken}-${CMAKE_BUILD_TYPE}")
79+
set(AYF_KISSFFT_BUILD_FOLDER "build-${archtoken}_${dataformattoken}_${CMAKE_BUILD_TYPE}")
6680

81+
message("Checking folder ${CMAKE_CURRENT_SOURCE_DIR}/${AYF_KISSFFT_INSTALL_FOLDER}")
82+
if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${AYF_KISSFFT_INSTALL_FOLDER}")
6783

84+
message(" --> does not exist.")
85+
86+
# kissfft-%arch%-%dataformattoken%-%buildtype%
87+
if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${targetfolder}")
88+
message("kissfft sub project not available. Starting script to download it.")
89+
execute_process(COMMAND ${mysh} -c "cd ${CMAKE_CURRENT_SOURCE_DIR} ; ./prepareModules-win.sh; exit")
90+
message("kissfft installation complete.")
91+
endif()
92+
93+
# Build the kissfft library
94+
if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${AYF_KISSFFT_BUILD_FOLDER}")
95+
file(MAKE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/")
96+
endif()
97+
98+
execute_process(COMMAND ${mysh} -c "cd ${CMAKE_CURRENT_SOURCE_DIR} ; ./prepareModules-glnx.sh ${archtoken} ${targetfolder} ${dataformattoken} ${CMAKE_BUILD_TYPE}")
99+
100+
# message(FATAL_ERROR "file(REMOVE_RECURSE \"${CMAKE_CURRENT_SOURCE_DIR}/${AYF_KISSFFT_BUILD_FOLDER}\")")
101+
#file(REMOVE_RECURSE "${CMAKE_CURRENT_SOURCE_DIR}/${AYF_KISSFFT_BUILD_FOLDER}")
102+
endif()
103+
104+
set(AYF_KISSFFT_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/${AYF_KISSFFT_INSTALL_FOLDER}/include/kissfft" CACHE INTERNAL "kissfft include references")
105+
set(AYF_KISSFFT_LIBRARIES "${CMAKE_CURRENT_SOURCE_DIR}/${AYF_KISSFFT_INSTALL_FOLDER}/lib/libkissfft-${dataformattoken}.so" CACHE INTERNAL "kissfft library references")
106+
107+
endif()
68108

69109
elseif(${JVX_OS} MATCHES "Android")
70110

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#!/bin/bash
2+
3+
arch=$1
4+
kissfftdir=$2
5+
dataformat=$3
6+
buildtype=$4
7+
8+
generatortoken="-G Ninja"
9+
10+
glnxexts="-DKISSFFT_DATATYPE=$dataformat -DKISSFFT_OPENMP=FALSE -DKISSFFT_PKGCONFIG=FALSE -DKISSFFT_STATIC=FALSE -DKISSFFT_TEST=FALSE -DKISSFFT_TOOLS=FALSE -DKISSFFT_USE_ALLOCA=FALSE"
11+
12+
set -x
13+
rm -rf CMakeCache.txt
14+
15+
echo cmake $generatortoken -DCMAKE_INSTALL_PREFIX=../$kissfftdir-$arch-$dataformat-$buildtype -DBUILD_SHARED_LIBS=FALSE $glnxexts -DCMAKE_BUILD_TYPE=$buildtype ../$2
16+
cmake $generatortoken -DCMAKE_INSTALL_PREFIX=../$kissfftdir-$arch-$dataformat-$buildtype -DBUILD_SHARED_LIBS=FALSE $glnxexts -DCMAKE_BUILD_TYPE=$buildtype ../$2
17+
18+
ninja install
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#!/bin/bash
2+
3+
echo "Script prepareModules-glnx.sh with arguments $1 $2 $3 $4 $5 $6 $7"
4+
5+
# $1: archtoken
6+
# $2 target folder
7+
# $3: dataformat
8+
# $4: build option
9+
10+
echo "Checking build folder <build-$1_$3_$4>"
11+
if [ ! -d "build-$1_$3_$4" ]; then
12+
13+
echo "Create build folder <build-$1_$3_$4>"
14+
mkdir build-$1_$3_$4
15+
16+
echo "Copy file build/compile-glnx.sh"
17+
cp build/compile-glnx.sh build-$1_$3_$4
18+
chmod +x build-$1_$3_$4/compile-glnx.sh
19+
fi
20+
21+
echo "Checking compile output folder <$2-$1-$3-$4>"
22+
23+
if [ ! -d "$2-$1-$3-$4" ]; then
24+
cd build-$1_$3_$4
25+
./compile-glnx.sh $1 $2 $3 $4
26+
27+
cd ..
28+
29+
pwd
30+
fi
31+
32+

sources/jvxLibraries/third_party/git/kissfft/prepareModules-win.sh

100644100755
File mode changed.

0 commit comments

Comments
 (0)