Created
December 9, 2021 02:14
-
-
Save simin75simin/029c65cdaa3cdd796d3d8ae00c50cd81 to your computer and use it in GitHub Desktop.
hxfr cmake modified
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# also change 3dscan path in 430 dir | |
# also copy dj's 430 dir if needed | |
cmake_minimum_required(VERSION 2.8.12) | |
project(hxfr C CXX) | |
set(PROJECT_VERSION_MAJOR 0) | |
set(PROJECT_VERSION_MINOR 5) | |
set(PROJECT_VERSION_PATCH 0) | |
set(PROJECT_VERSION_TWEAK 0) | |
set(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}.${PROJECT_VERSION_TWEAK}) | |
set(PROJECT_DESCRIPTION "Himax Face Recognition App") | |
set(PROJECT_HOMEPAGE_URL "https://www.himax.com.tw/") | |
set(PROJECT_EXECUTABLE_NAME "hxfr") | |
set(PROJECT_SHARED_LIBUVC_NAME "uvc") | |
#set(PROJECT_STATIC_LIBUVC_NAME "uvc_static") | |
set(PROJECT_SHARED_LIBPIXTALKS_FACEKIT_NAME "pixtalks_facekit") | |
if(NOT CMAKE_BUILD_TYPE) | |
message(STATUS "No build type selected, default to 'Debug'") | |
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "" FORCE) | |
endif() | |
if(NOT CMAKE_LINK_LIB_TYPE) | |
message(STATUS "No linking library type selected, default to 'Shared'") | |
set(CMAKE_LINK_LIB_TYPE "Shared" CACHE STRING "" FORCE) | |
endif() | |
set(CMAKE_C_STANDARD 99) # Available options: 90, 99, 11. | |
set(CMAKE_CXX_STANDARD 11) # Available options: 98, 11, 14, 17. | |
set(CMAKE_C_FLAGS "-march=native -Wall -Wextra") | |
set(CMAKE_C_FLAGS_DEBUG "-O0 -g -DWXDEBUG") | |
set(CMAKE_C_FLAGS_MINSIZEREL "-Os -DNDEBUG -flto") | |
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g -DWXDEBUG -DNDEBUG -flto") | |
set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG -flto") | |
set(CMAKE_CXX_FLAGS "-march=native -Wall -Wextra") | |
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -DWXDEBUG") | |
set(CMAKE_CXX_FLAGS_MINSIZEREL "-Os -DNDEBUG -flto") | |
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -DWXDEBUG -DNDEBUG -flto") | |
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG -flto") | |
find_package(PkgConfig) | |
pkg_check_modules(LibUSB REQUIRED libusb-1.0) | |
pkg_check_modules(LibCrypto REQUIRED libcrypto>=1.1) | |
find_package(wxWidgets 3.0 REQUIRED COMPONENTS core base) | |
#find_package(OpenCV 3.4.6 EXACT | |
# REQUIRED COMPONENTS core imgproc imgcodecs | |
# PATHS ${CMAKE_CURRENT_LIST_DIR}/lib/libopencv/share/OpenCV | |
#) | |
find_package(OpenCV 3.2 EXACT | |
REQUIRED COMPONENTS core imgproc imgcodecs | |
) | |
include(${wxWidgets_USE_FILE}) | |
include_directories( | |
${PROJECT_SOURCE_DIR}/include | |
${PROJECT_SOURCE_DIR}/res | |
${PROJECT_SOURCE_DIR}/src | |
${PROJECT_SOURCE_DIR}/lib/libpixtalks_facekit/include | |
${OpenCV_INCLUDE_DIRS} | |
${LibCrypto_INCLUDE_DIRS} | |
${PROJECT_SOURCE_DIR}/lib/libuvc/include | |
) | |
set(SRCS | |
src/main.cpp | |
src/thread.cpp | |
src/basic_draw_pane.cpp | |
src/cam_ctl.cpp | |
src/face_alg.cpp | |
src/io_utils.cpp | |
src/dump_img.cpp | |
) | |
add_executable(${PROJECT_EXECUTABLE_NAME} | |
${SRCS} | |
) | |
# Add dependent library: libpixtalks facekit | |
add_library(${PROJECT_SHARED_LIBPIXTALKS_FACEKIT_NAME} SHARED IMPORTED) | |
set_property(TARGET ${PROJECT_SHARED_LIBPIXTALKS_FACEKIT_NAME} | |
PROPERTY IMPORTED_LOCATION ${PROJECT_SOURCE_DIR}/lib/libpixtalks_facekit/lib/libpixtalks_sh430_facekit.so | |
) | |
add_library(${PROJECT_SHARED_LIBUVC_NAME} SHARED IMPORTED) | |
set_property(TARGET ${PROJECT_SHARED_LIBUVC_NAME} | |
PROPERTY IMPORTED_LOCATION ${PROJECT_SOURCE_DIR}/lib/libuvc/lib/debug/libuvc.so | |
) | |
link_directories(${PROJECT_SOURCE_DIR}/lib/libpixtalks_facekit/lib) | |
# Add dependent library: libuvc | |
# add_library(${PROJECT_SHARED_LIBUVC_NAME} SHARED IMPORTED) | |
# add_library(${PROJECT_STATIC_LIBUVC_NAME} STATIC IMPORTED) | |
# if(CMAKE_BUILD_TYPE STREQUAL "Release") | |
# set_property(TARGET ${PROJECT_SHARED_LIBUVC_NAME} | |
# PROPERTY IMPORTED_LOCATION ${PROJECT_SOURCE_DIR}/lib/libuvc/lib/release/libuvc.so | |
# ) | |
# set_property(TARGET ${PROJECT_STATIC_LIBUVC_NAME} | |
# PROPERTY IMPORTED_LOCATION ${PROJECT_SOURCE_DIR}/lib/libuvc/lib/release/libuvc.a) | |
# link_directories(${PROJECT_SOURCE_DIR}/lib/libuvc/lib/release) | |
# else() | |
# set_property(TARGET ${PROJECT_SHARED_LIBUVC_NAME} | |
# PROPERTY IMPORTED_LOCATION ${PROJECT_SOURCE_DIR}/lib/libuvc/lib/debug/libuvc.so | |
# ) | |
# set_property(TARGET ${PROJECT_STATIC_LIBUVC_NAME} | |
# PROPERTY IMPORTED_LOCATION ${PROJECT_SOURCE_DIR}/lib/libuvc/lib/debug/libuvc.a | |
# ) | |
# link_directories(${PROJECT_SOURCE_DIR}/lib/libuvc/lib/debug) | |
# endif() | |
# target_link_libraries(${PROJECT_SHARED_LIBUVC_NAME} INTERFACE ${LibUSB_LIBRARIES}) | |
# target_link_libraries(${PROJECT_STATIC_LIBUVC_NAME} INTERFACE ${LibUSB_LIBRARIES}) | |
# Add dependent library: dependent libraries | |
file(GLOB Other_dep_lib_paths | |
${PROJECT_SOURCE_DIR}/lib/other_deps/lib/lib*.so* | |
) | |
foreach(Other_dep_lib_path ${Other_dep_lib_paths}) | |
get_filename_component(Other_dep_lib_orig_name "${Other_dep_lib_path}" NAME_WE) | |
string(REGEX REPLACE "^lib(.*)" "\\1" Other_dep_lib_name ${Other_dep_lib_orig_name}) | |
list(APPEND Other_dep_libs ${Other_dep_lib_name}) | |
add_library(${Other_dep_lib_name} SHARED IMPORTED) | |
set_property(TARGET ${Other_dep_lib_name} | |
PROPERTY IMPORTED_LOCATION ${Other_dep_lib_path} | |
) | |
endforeach() | |
link_directories(${PROJECT_SOURCE_DIR}/lib/other_deps/lib) | |
# Linking main program with above dependent libraries | |
target_link_libraries(${PROJECT_EXECUTABLE_NAME} PUBLIC | |
${wxWidgets_LIBRARIES} | |
${PROJECT_SHARED_LIBPIXTALKS_FACEKIT_NAME} | |
${PROJECT_SHARED_LIBUVC_NAME} | |
${OpenCV_LIBS} | |
${LibCrypto_LIBRARIES} | |
${Other_dep_libs} | |
) | |
# if(CMAKE_LINK_LIB_TYPE STREQUAL "Static") | |
# target_link_libraries(${PROJECT_EXECUTABLE_NAME} PUBLIC | |
# ${PROJECT_STATIC_LIBUVC_NAME} | |
# ) | |
# else() | |
# target_link_libraries(${PROJECT_EXECUTABLE_NAME} PUBLIC | |
# ${PROJECT_SHARED_LIBUVC_NAME} | |
# ) | |
# endif() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment