cmake_minimum_required(VERSION 3.10) project(InspireFaceSample) option(ISF_BUILD_SAMPLE_CLUTTERED "Whether to compile the cluttered sample program (debug code during development)" OFF) include_directories(${SRC_DIR}) if (ISF_ENABLE_RKNN) set(ISF_RKNN_API_LIB ${ISF_THIRD_PARTY_DIR}/inspireface-precompile/rknn/${ISF_RKNPU_MAJOR}/runtime/${ISF_RK_DEVICE_TYPE}/Linux/librknn_api/${CPU_ARCH}/) link_directories(${ISF_RKNN_API_LIB}) set(ext rknn_api dl) endif () add_executable(Leak cpp/leak.cpp) target_link_libraries(Leak InspireFace ${ext}) set_target_properties(Leak PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/sample/" ) # Examples of face detection and tracking add_executable(FaceTrackSample cpp/sample_face_track.cpp) target_link_libraries(FaceTrackSample InspireFace ${ext}) set_target_properties(FaceTrackSample PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/sample/" ) add_executable(FaceTrackSampleCost cpp/sample_face_track_cost.cpp) target_link_libraries(FaceTrackSampleCost InspireFace ${ext}) set_target_properties(FaceTrackSampleCost PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/sample/" ) # Examples of face detection and tracking add_executable(MTFaceTrackSample cpp/sample_face_track_mt.cpp) target_link_libraries(MTFaceTrackSample InspireFace ${ext}) set_target_properties(MTFaceTrackSample PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/sample/" ) if(NOT DISABLE_GUI) # Examples of face detection and tracking add_executable(FaceTrackVideoSample cpp/sample_face_track_video.cpp) target_link_libraries(FaceTrackVideoSample InspireFace ${ext}) set_target_properties(FaceTrackVideoSample PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/sample/" ) endif () # Examples of face recognition add_executable(FaceRecognitionSample cpp/sample_face_recognition.cpp) target_link_libraries(FaceRecognitionSample InspireFace ${ext}) set_target_properties(FaceRecognitionSample PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/sample/" ) add_executable(FaceSearchSample cpp/sample_face_search.cpp) target_link_libraries(FaceSearchSample InspireFace ${ext}) set_target_properties(FaceSearchSample PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/sample/" ) # Examples of face recognition add_executable(FaceComparisonSample cpp/sample_face_comparison.cpp) target_link_libraries(FaceComparisonSample InspireFace ${ext}) set_target_properties(FaceComparisonSample PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/sample/" ) # Examples of face recognition add_executable(FaceDetect cpp/face_detect.cpp) target_link_libraries(FaceDetect InspireFace ${ext}) set_target_properties(FaceDetect PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/sample/" ) # Platform watershed if (ISF_BUILD_LINUX_ARM7 OR ISF_BUILD_LINUX_AARCH64) # Typically this is an embedded system or development board scenario where some GUI-related functions are not supported elseif(ANDROID) # The executable program on the Android platform generally refers to the running on the shell else() # Usually x86 linux or macos endif () # These sample programs are debugging and testing code left behind by developers during the development process. # They are cluttered and have not been organized, or similar functionalities have already been organized in the standard samples. # You can ignore them. if (ISF_BUILD_SAMPLE_CLUTTERED) if (NOT ISF_BUILD_LINUX_ARM7 AND NOT ISF_BUILD_LINUX_AARCH64) # =======================InspireFace Sample=========================== add_executable(TrackerSample cluttered/standard/tracker_sample.cpp) target_link_libraries(TrackerSample InspireFace) set_target_properties(TrackerSample PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/sample/cluttered/" ) add_executable(ContextSample cluttered/standard/context_sample.cpp) target_link_libraries(ContextSample InspireFace) set_target_properties(ContextSample PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/sample/cluttered/" ) add_executable(TestSample cluttered/standard/test_sample.cpp) target_link_libraries(TestSample InspireFace) set_target_properties(TestSample PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/sample/cluttered/" ) add_executable(NetSample cluttered/standard/net_sample.cpp) target_link_libraries(NetSample InspireFace) set_target_properties(NetSample PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/sample/cluttered/" ) add_executable(RecSample cluttered/standard/rec_sample.cpp) target_link_libraries(RecSample InspireFace) set_target_properties(RecSample PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/sample/cluttered/" ) add_executable(BMSample cluttered/standard/bm_sample.cpp) target_link_libraries(BMSample InspireFace) set_target_properties(BMSample PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/sample/cluttered/" ) else() # =======================RK Temporary test category=========================== if (ISF_ENABLE_RKNN) set(ISF_RKNN_API_LIB ${ISF_THIRD_PARTY_DIR}/${ISF_RKNPU_MAJOR}/runtime/${ISF_RK_DEVICE_TYPE}/Linux/librknn_api/${CPU_ARCH}/) message("Enable RKNN Inference") link_directories(${ISF_RKNN_API_LIB}) # Face detection add_executable(RKFaceDetSample cluttered/rk_sample/rk_face_det_sample.cpp) target_link_libraries(RKFaceDetSample InspireFace rknn_api dl) set_target_properties(RKFaceDetSample PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/sample/cluttered/" ) # Simple network test add_executable(RKSimpleNetSample cluttered/rk_sample/rk_simple_net_sample.cpp) target_link_libraries(RKSimpleNetSample InspireFace rknn_api dl) set_target_properties(RKSimpleNetSample PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/sample/cluttered/" ) # Face recognize add_executable(RKFaceRecSample cluttered/rk_sample/rk_face_recognize_sample.cpp) target_link_libraries(RKFaceRecSample InspireFace rknn_api dl) set_target_properties(RKFaceRecSample PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/sample/cluttered/" ) # Tracking module add_executable(RKTrackerSample cluttered/rk_sample/rk_tracker_sample.cpp) target_link_libraries(RKTrackerSample InspireFace rknn_api dl) set_target_properties(RKTrackerSample PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/sample/cluttered/" ) # Debug add_executable(DebugRKRec cluttered/rk_sample/debug_rk_rec.cpp) target_link_libraries(DebugRKRec InspireFace rknn_api dl) set_target_properties(DebugRKRec PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/sample/cluttered/" ) add_executable(ArchTest cluttered/standard/archive_test.cpp) target_link_libraries(ArchTest InspireFace) set_target_properties(ArchTest PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/sample/cluttered/" ) endif() endif() # Tracking module add_executable(SQLiteTest cluttered/standard/test_sqlite_sample.cpp) target_link_libraries(SQLiteTest InspireFace) set_target_properties(SQLiteTest PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/sample/cluttered/" ) if (ISF_ENABLE_RKNN) set(DEPEND rknn_api dl) endif () # C_API Demo add_executable(CAPISample cluttered/standard/c_api_sample.cpp) target_link_libraries(CAPISample InspireFace ${DEPEND}) set_target_properties(CAPISample PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/sample/cluttered/" ) # C_API Demo add_executable(LoopTracker cluttered/standard/loop_tracker.cpp) target_link_libraries(LoopTracker InspireFace ${DEPEND}) set_target_properties(LoopTracker PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/sample/cluttered/" ) add_executable(ArchTracker cluttered/standard/archive_tracker.cpp) target_link_libraries(ArchTracker InspireFace) set_target_properties(ArchTracker PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/sample/cluttered/" ) add_executable(ErrorTest cluttered/standard/error_test.cpp) target_link_libraries(ErrorTest InspireFace) set_target_properties(ErrorTest PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/sample/cluttered/" ) endif () # Print Message message(STATUS "InspireFace Sample:") message(STATUS "\t ISF_BUILD_SAMPLE_CLUTTERED: ${ISF_BUILD_SAMPLE_CLUTTERED}") # Install bin install(TARGETS Leak RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/sample) install(TARGETS FaceTrackSample RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/sample) install(TARGETS FaceTrackSampleCost RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/sample) install(TARGETS MTFaceTrackSample RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/sample) install(TARGETS FaceRecognitionSample RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/sample) install(TARGETS FaceSearchSample RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/sample) install(TARGETS FaceComparisonSample RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/sample) install(TARGETS FaceTrackVideoSample RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/sample)