You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
219 lines
8.9 KiB
CMake
219 lines
8.9 KiB
CMake
cmake_minimum_required(VERSION 3.16)
|
|
set(CMAKE_WARN_VS10 OFF)
|
|
|
|
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /ZI")
|
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SAFESEH:NO")
|
|
project(LowKCut VERSION 1.0)
|
|
|
|
set(LowKSolution OFF)
|
|
|
|
if(NOT DEFINED Use_Presets)
|
|
if(${CMAKE_SIZEOF_VOID_P} STREQUAL "8")
|
|
message(">> X64 Compile")
|
|
option(CompileWithX64 "use x64 platform init" ON)
|
|
else()
|
|
message(">> X32 Compile")
|
|
option(CompileWithX64 "use x32 platform init" OFF)
|
|
endif()
|
|
|
|
message(">> not use presets")
|
|
|
|
if(CompileWithX64)
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_SOURCE_DIR}/../../output/debug/x64_bin)
|
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_SOURCE_DIR}/../../output/debug/x64_lib)
|
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_SOURCE_DIR}/../../output/debug/x64_static_lib)
|
|
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}/../../output/release/x64_bin)
|
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}/../../output/release/x64_lib)
|
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}/../../output/release/x64_static_lib)
|
|
else()
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_SOURCE_DIR}/../../output/debug/bin)
|
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_SOURCE_DIR}/../../output/debug/lib)
|
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_SOURCE_DIR}/../../output/debug/static_lib)
|
|
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}/../../output/release/bin)
|
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}/../../output/release/lib)
|
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}/../../output/release/static_lib)
|
|
|
|
#list(APPEND CMAKE_PREFIX_PATH D:/Projects/ThidLibrary/msvc2015/LowKBase/lib/cmake/LowKBase)
|
|
endif()
|
|
|
|
if(CompileWithX64)
|
|
set(Qt5_DIR "D:/Qt/Qt5.9.9/5.9.9/msvc2015_64/lib/cmake/Qt5")
|
|
set(third_lib_directory "D:/Projects/ThidLibrary/msvc2015_64")
|
|
else()
|
|
set(Qt5_DIR "D:/Qt/Qt5.9.9/5.9.9/msvc2015/lib/cmake/Qt5")
|
|
set(third_lib_directory "D:/Projects/ThidLibrary/msvc2015")
|
|
endif()
|
|
else()
|
|
message(">> use presets config")
|
|
endif()
|
|
|
|
if(DEFINED Qt5_12_12)
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_SOURCE_DIR}/output/debug/Qt5_12_x64_bin)
|
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_SOURCE_DIR}/output/debug/Qt5_12_x64_lib)
|
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_SOURCE_DIR}/output/debug/Qt5_12_x64_static_lib)
|
|
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}/output/release/Qt5_12_x64_bin)
|
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}/output/release/Qt5_12_x64_lib)
|
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}/output/release/Qt5_12_x64_static_lib)
|
|
|
|
set(Qt5_DIR "D:/Qt/Qt5.12.12/5.12.12/msvc2015_64/lib/cmake/Qt5")
|
|
|
|
set(LowKBase_DIR "D:/Projects/ThidLibrary/msvc2015_64_Qt5_12_12/LowKBase/lib/cmake/LowKBase")
|
|
else()
|
|
set(LowKBase_DIR ${third_lib_directory}/LowKBase/lib/cmake/LowKBase)
|
|
endif()
|
|
|
|
message(">> third_lib_directory ${third_lib_directory}")
|
|
message(">> Qt5Dir:" ${Qt5_DIR})
|
|
message(">> LowKBase:" ${LowKBase_DIR})
|
|
#option(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/modules)
|
|
|
|
option(ENABLE_SOLUTION_FOLDERS "ENABLE_SOLUTION_FOLDERS" ON)
|
|
if(ENABLE_SOLUTION_FOLDERS)
|
|
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
|
set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "CMakeTargets")
|
|
endif()
|
|
|
|
#set(Qt5_DIR "D:/Qt/Qt5.9.9/5.9.9/msvc2015/lib/cmake/Qt5")
|
|
#set(third_lib_directory "D:/third-party/install/msvc2015")
|
|
|
|
set(fmt_DIR ${third_lib_directory}/fmt/lib/cmake/fmt)
|
|
set(doctest_DIR ${third_lib_directory}/doctest/lib/cmake/doctest)
|
|
set(cserialport_DIR ${third_lib_directory}/CSerialPort/lib/cmake/CSerialPort)
|
|
set(glog_DIR ${third_lib_directory}/glog/lib/cmake/glog)
|
|
|
|
if(NOT DEFINED LowKBase_DIR)
|
|
set(LowKBase_DIR ${third_lib_directory}/LowKBase/lib/cmake/LowKBase)
|
|
endif()
|
|
|
|
list(APPEND CMAKE_PREFIX_PATH ${LowKBase_DIR})
|
|
list(APPEND CMAKE_MODULE_PATH ${third_lib_directory}/modules)
|
|
|
|
if(DEFINED Qt5_12_12)
|
|
message(">> qt 5.12.12 support")
|
|
find_package(Qt5 5.12.12 EXACT COMPONENTS Core Xml Sql REQUIRED)
|
|
else()
|
|
message(">> qt 5.9.9 support")
|
|
find_package(Qt5 5.9.9 EXACT COMPONENTS Core Xml Sql REQUIRED)
|
|
endif()
|
|
|
|
find_package(fmt REQUIRED)
|
|
find_package(cserialport REQUIRED)
|
|
find_package(halcon10)
|
|
find_package(doctest)
|
|
find_package(glog REQUIRED)
|
|
|
|
find_package(LowKBase 2.1.0 EXACT COMPONENTS common_base drivercard hardware_driver
|
|
logic_driver vision_base cam_algorithm cam_driver
|
|
motor_driver cam_algorithm fsm allsystem REQUIRED)
|
|
|
|
function(TargetCopyDependency export_lib export_lib_dependency)
|
|
if (NOT ${${export_lib_dependency}_ROOT} STREQUAL "")
|
|
set(${export_lib_dependency}_BASE_PATH ${${export_lib_dependency}_ROOT})
|
|
elseif (NOT ${${export_lib_dependency}_INCLUDE_DIR} STREQUAL "")
|
|
set(${export_lib_dependency}_BASE_PATH ${${export_lib_dependency}_INCLUDE_DIR}/..)
|
|
elseif (NOT ${${export_lib_dependency}_LIBRARY} STREQUAL "")
|
|
get_filename_component(${export_lib_dependency}_BASE_PATH ${${export_lib_dependency}_LIBRARY} DIRECTORY)
|
|
list(APPEND ${export_lib_dependency}_BASE_PATH "/..")
|
|
else()
|
|
message(STATUS ${export_lib_dependency}_NOT_FOUND)
|
|
endif()
|
|
#message(STATUS "${export_lib_dependency}_BASE_PATH ${${export_lib_dependency}_BASE_PATH}")
|
|
if (NOT ${${export_lib_dependency}_BASE_PATH} STREQUAL "")
|
|
FILE(GLOB_RECURSE ${export_lib_dependency}_LIBRARIES
|
|
${${export_lib_dependency}_BASE_PATH}/*.dll
|
|
${${export_lib_dependency}_BASE_PATH}/license.*
|
|
)
|
|
endif()
|
|
if (NOT "${${export_lib_dependency}_LIBRARIES}" STREQUAL "")
|
|
#message(STATUS "${export_lib_dependency}_LIBRARIES ${${export_lib_dependency}_LIBRARIES}")
|
|
add_custom_command(TARGET ${export_lib} POST_BUILD
|
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
|
${${export_lib_dependency}_LIBRARIES}
|
|
$<TARGET_FILE_DIR:${export_lib}>
|
|
)
|
|
endif()
|
|
endfunction()
|
|
|
|
add_library(logic_interface INTERFACE IMPORTED)
|
|
set_target_properties(logic_interface PROPERTIES
|
|
INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/global_define
|
|
)
|
|
|
|
message(">> LowKSolution:" ${LowKSolution})
|
|
if(LowKSolution)
|
|
target_compile_definitions(logic_interface INTERFACE __LOWK_SOLUTION__)
|
|
else()
|
|
target_compile_definitions(logic_interface INTERFACE __LOWK_SOLUTION__NOT)
|
|
endif()
|
|
|
|
if(LowKSolution)
|
|
set(lib_laser_path laser_path_driver)
|
|
set(lib_laser_power_cali laser_power_cali)
|
|
else()
|
|
set(lib_laser_path laser_path_driver)
|
|
set(lib_laser_power_cali laser_power_cali)
|
|
endif()
|
|
|
|
|
|
add_subdirectory(cam_driver_impl)
|
|
add_subdirectory(motor_driver_impl)
|
|
add_subdirectory(system_manager)
|
|
|
|
add_subdirectory(controls_common)
|
|
add_subdirectory(controls_vision)
|
|
add_subdirectory(gui)
|
|
add_subdirectory(log_impl)
|
|
#add_subdirectory(laser_path_driver)
|
|
add_subdirectory(laser_driver_impl)
|
|
add_subdirectory(light_driver_impl)
|
|
add_subdirectory(power_meter_driver)
|
|
#add_subdirectory(laser_path_driver)
|
|
#add_subdirectory(laser_power_cali)
|
|
add_subdirectory(${lib_laser_path})
|
|
add_subdirectory(${lib_laser_power_cali})
|
|
|
|
add_subdirectory(laser_cali_driver)
|
|
add_subdirectory(kerf_base)
|
|
add_subdirectory(worktable_driver)
|
|
add_subdirectory(product_driver)
|
|
add_subdirectory(system_external)
|
|
if(DEFINED Qt5_12_12)
|
|
message(">> qt 5.12.12 support")
|
|
find_package(Qt5 5.12.12 COMPONENTS LinguistTools REQUIRED)
|
|
else()
|
|
message(">> qt 5.9.9 support")
|
|
find_package(Qt5 5.9.9 COMPONENTS LinguistTools REQUIRED)
|
|
endif()
|
|
|
|
set(TS_FILES translations/project_cn.ts translations/project_en.ts)
|
|
set_source_files_properties(${TS_FILES}
|
|
PROPERTIES OUTPUT_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/translations)
|
|
qt5_create_translation(QM_FILES ${CMAKE_CURRENT_SOURCE_DIR}/gui/src/
|
|
${CMAKE_CURRENT_SOURCE_DIR}/system_manager/src/
|
|
${CMAKE_CURRENT_SOURCE_DIR}/cam_driver_impl/src/
|
|
${CMAKE_CURRENT_SOURCE_DIR}/controls_common/src/
|
|
${CMAKE_CURRENT_SOURCE_DIR}/controls_vision/src/
|
|
${CMAKE_CURRENT_SOURCE_DIR}/motor_driver_impl/src/
|
|
${CMAKE_CURRENT_SOURCE_DIR}/laser_driver_impl/src/
|
|
${CMAKE_CURRENT_SOURCE_DIR}/laser_path_driver/src/
|
|
${CMAKE_CURRENT_SOURCE_DIR}/power_meter_driver/src
|
|
${CMAKE_CURRENT_SOURCE_DIR}/light_driver_impl/src/
|
|
${CMAKE_CURRENT_SOURCE_DIR}/log_impl/src/
|
|
${CMAKE_CURRENT_SOURCE_DIR}/${lib_laser_path}/src
|
|
${CMAKE_CURRENT_SOURCE_DIR}/${lib_laser_power_cali}/src
|
|
${CMAKE_CURRENT_SOURCE_DIR}/laser_cali_driver/src/
|
|
${CMAKE_CURRENT_SOURCE_DIR}/kerf_base/src/
|
|
${CMAKE_CURRENT_SOURCE_DIR}/worktable_driver/src/
|
|
${CMAKE_CURRENT_SOURCE_DIR}/system_external/src/
|
|
${TS_FILES})
|
|
|
|
add_custom_target(lupdate_task DEPENDS ${TS_FILES})
|
|
add_custom_target(lrelease_task DEPENDS ${QM_FILES})
|
|
|
|
message("output_debug:" ${CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG})
|
|
message("output_release:" ${CMAKE_RUNTIME_OUTPUT_DIRECTORY_RelWithDebInfo})
|
|
|