11project (mnnsr-ncnn)
22
33cmake_minimum_required (VERSION 3.4.1)
4- # set(CMAKE_CXX_STANDARD 20)
5- # set(CMAKE_CXX_STANDARD_REQUIRED ON)
4+ set (CMAKE_CXX_STANDARD 20)
5+ set (CMAKE_CXX_STANDARD_REQUIRED ON )
66set (CMAKE_BUILD_TYPE Debug)
77#set(CMAKE_BUILD_TYPE Release)
88
99
10-
11- if (MSVC ) # Visual Studio
10+ if (MSVC ) # Visual Studio
1211 message (STATUS "==Configuring for Visual Studio==" )
1312
14- if ("${CMAKE_GENERATOR} " MATCHES "(Win64|IA64)" )
13+ if ("${CMAKE_GENERATOR} " MATCHES "(Win64|IA64)" )
1514 set (TARGET_ARCH "x64" )
16- elseif ("${CMAKE_GENERATOR_PLATFORM} " MATCHES "ARM64" )
15+ elseif ("${CMAKE_GENERATOR_PLATFORM} " MATCHES "ARM64" )
1716 set (TARGET_ARCH "ARM64" )
18- elseif ("${CMAKE_GENERATOR} " MATCHES "ARM" )
17+ elseif ("${CMAKE_GENERATOR} " MATCHES "ARM" )
1918 set (TARGET_ARCH "ARM" )
20- elseif ("${CMAKE_SIZEOF_VOID_P} " STREQUAL "8" )
19+ elseif ("${CMAKE_SIZEOF_VOID_P} " STREQUAL "8" )
2120 set (TARGET_ARCH "x64" )
22- else ()
21+ else ()
2322 set (TARGET_ARCH x86)
24- endif ()
23+ endif ()
2524
2625 # 设置目标属性,指定 MNN 库的路径
2726 set (mnn_DIR ${CMAKE_CURRENT_SOURCE_DIR} /../../../../../3rdparty/mnn_windows_x64_cpu_opencl)
2827 find_library (MNN_LIB mnn HINTS "${mnn_DIR} /lib/${TARGET_ARCH} /Release/Dynamic/MD" )
2928
30- # add_library(MNN_Vulkan SHARED IMPORTED)
31- # set_target_properties(MNN_Vulkan PROPERTIES IMPORTED_LOCATION
32- # ${mnn_DIR}/${ANDROID_ABI}/libMNN_Vulkan.so)
29+ # add_library(MNN_Vulkan SHARED IMPORTED)
30+ # set_target_properties(MNN_Vulkan PROPERTIES IMPORTED_LOCATION
31+ # ${mnn_DIR}/${ANDROID_ABI}/libMNN_Vulkan.so)
3332
3433 set (OpenCV_DIR "C:/Lib/opencv/build" )
35-
34+
3635 set (ncnn_DIR ${CMAKE_CURRENT_SOURCE_DIR} /../../../../../3rdparty/ncnn-windows-vs2022-shared)
3736 find_library (NCNN_LIB ncnn HINTS ${ncnn_DIR} /${TARGET_ARCH} /lib)
38- # set(ncnn_LIB ${ncnn_DIR}/${TARGET_ARCH}/lib/ncnn.lib)
37+ # set(ncnn_LIB ${ncnn_DIR}/${TARGET_ARCH}/lib/ncnn.lib)
3938
4039
41- else () # Android Studio
40+ else () # Android Studio
4241 message (STATUS "Configuring for Android Studio" )
4342 set (CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -s -Wall -g -ggdb -Wl,-rpath=./" )
4443 set (CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wl,-rpath=./" )
@@ -47,18 +46,18 @@ else() # Android Studio
4746
4847 # 设置目标属性,指定 MNN 库的路径
4948 set (mnn_DIR ${CMAKE_CURRENT_SOURCE_DIR} /../../../../../3rdparty/mnn_android)
50-
49+
5150 include_directories (${mnn_DIR} /include )
52- #include_directories(${mnn_DIR}/${ANDROID_ABI}/include/MNN)
51+ #include_directories(${mnn_DIR}/${ANDROID_ABI}/include/MNN)
5352 find_library (MNN_LIB mnn HINTS "${mnn_DIR} /${TARGET_ARCH} " )
5453
5554 add_library (MNN SHARED IMPORTED )
5655 set_target_properties (MNN PROPERTIES IMPORTED_LOCATION
5756 ${mnn_DIR} /${ANDROID_ABI} /libMNN.so)
5857
59- # add_library(c++_shared SHARED IMPORTED)
60- # set_target_properties(c++_shared PROPERTIES IMPORTED_LOCATION
61- # ${mnn_DIR}/${ANDROID_ABI}/libc++_shared.so)
58+ add_library (c++_shared SHARED IMPORTED )
59+ set_target_properties (c++_shared PROPERTIES IMPORTED_LOCATION
60+ ${mnn_DIR} /${ANDROID_ABI} /libc++_shared.so)
6261
6362 add_library (MNN_CL SHARED IMPORTED )
6463 set_target_properties (MNN_CL PROPERTIES IMPORTED_LOCATION
@@ -70,28 +69,21 @@ else() # Android Studio
7069
7170 set (OpenCV_DIR ${CMAKE_CURRENT_SOURCE_DIR} /../../../../../3rdparty/OpenCV-android-sdk/sdk/native/jni/)
7271 set (ncnn_DIR ${CMAKE_CURRENT_SOURCE_DIR} /../../../../../3rdparty/ncnn-android-vulkan-shared)
73- # set(ncnn_LIB ${ncnn_DIR}/${ANDROID_ABI}/lib/libncnn.so)
72+ # set(ncnn_LIB ${ncnn_DIR}/${ANDROID_ABI}/lib/libncnn.so)
7473
75- endif ()
74+ endif ()
7675
7776message (STATUS "TARGET_ARCH: ${TARGET_ARCH} " )
78-
79-
80- find_package (OpenCV REQUIRED)
81- include_directories (${OpenCV_DIR} /include )
82- message (STATUS "find opencv result: ${OpenCV_LIBS} " )
83-
84-
8577include_directories (${mnn_DIR} /include )
8678#include_directories(${mnn_DIR}/${ANDROID_ABI}/include/MNN)
8779
8880
89- if (EXISTS ${MNN_LIB} )
81+ if (EXISTS ${MNN_LIB} )
9082 message (STATUS "find mnn: ${MNN_LIB} " )
91- else ()
83+ else ()
9284 message (STATUS "mnn library not found!" )
9385 set (MNN_LIB "${mnn_DIR} /${ANDROID_ABI} /libMNN.so" )
94- endif ()
86+ endif ()
9587message (STATUS "find mnn result: ${MNN_LIB} " )
9688
9789
@@ -101,27 +93,28 @@ include_directories(${ncnn_DIR}/${TARGET_ARCH}/include/ncnn)
10193
10294
10395message (STATUS "find ncnn in: ${ncnn_DIR} /${TARGET_ARCH} /lib" )
104- find_library (NCNN_LIB NAMES ncnn libncnn PATHS "${ncnn_DIR} /${TARGET_ARCH} /lib" )
105- if (EXISTS ${NCNN_LIB} )
96+ find_library (NCNN_LIB NAMES ncnn libncnn PATHS "${ncnn_DIR} /${TARGET_ARCH} /lib" )
97+ if (EXISTS ${NCNN_LIB} )
10698 message (STATUS "Found ncnn: ${NCNN_LIB} " )
107- else ()
99+ else ()
108100 message (STATUS "ncnn library not found!" )
109101 set (NCNN_LIB "${ncnn_DIR} /${TARGET_ARCH} /lib/libncnn.so" )
110- endif ()
102+ endif ()
111103message (STATUS "find ncnn result: ${NCNN_LIB} " )
112104
105+ find_package (OpenCV REQUIRED)
106+ include_directories (${OpenCV_DIR} /include )
113107
114108set (libwebp_DIR ${CMAKE_CURRENT_SOURCE_DIR} /../../../../../3rdparty/libwebp)
115109
116110
117-
118111#include_directories(${CMAKE_CURRENT_BINARY_DIR})
119112option (USE_SYSTEM_WEBP "build with system libwebp" OFF )
120- if (NOT USE_SYSTEM_WEBP)
113+ if (NOT USE_SYSTEM_WEBP)
121114 # build libwebp library
122- if (NOT EXISTS "${libwebp_DIR} /CMakeLists.txt" )
115+ if (NOT EXISTS "${libwebp_DIR} /CMakeLists.txt" )
123116 message (FATAL_ERROR "Not find libwebp CMakeLists.txt!" )
124- endif ()
117+ endif ()
125118
126119 option (WEBP_ENABLE_SIMD "" ON )
127120 option (WEBP_BUILD_ANIM_UTILS "" OFF )
@@ -137,16 +130,16 @@ if(NOT USE_SYSTEM_WEBP)
137130 option (WEBP_NEAR_LOSSLESS "" OFF )
138131 option (WEBP_ENABLE_SWAP_16BIT_CSP "" OFF )
139132
140- add_subdirectory (${libwebp_DIR} ${CMAKE_BINARY_DIR} /libwebp)
133+ add_subdirectory (${libwebp_DIR} ${CMAKE_BINARY_DIR} /libwebp)
141134 include_directories (${CMAKE_BINARY_DIR} /libwebp/src)
142- endif ()
135+ endif ()
143136
144137
145138add_executable (${PROJECT_NAME} main.cpp mnnsr.cpp)
146139
147- target_link_libraries (${PROJECT_NAME} webp ${OpenCV_LIBS} ${MNN_LIB } ${NCNN_LIB} )
140+ target_link_libraries (${PROJECT_NAME} webp MNN MNN_CL MNN_Vulkan ${OpenCV_LIBS } ${NCNN_LIB} )
148141
149- add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD
142+ add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD
150143 COMMAND ${CMAKE_COMMAND} -E copy_directory
151144 $<TARGET_FILE_DIR:${PROJECT_NAME} >
152145 ${CMAKE_CURRENT_SOURCE_DIR} /../../../../../RealSR-NCNN-Android-GUI/app/src/main/assets/realsr
0 commit comments