| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- cmake_minimum_required(VERSION 3.5)
- set(MODULE_NAME "qrcode")
- # 设置项目名为当前目录名
- project(${MODULE_NAME} C CXX)
- # 搜索源文件和头文件
- file(GLOB_RECURSE SOURCE_FILES
- "${PROJECT_SOURCE_DIR}/src/*.cpp"
- "${PROJECT_SOURCE_DIR}/src/*.c"
- )
- file(GLOB_RECURSE HEADER_FILES
- "${PROJECT_SOURCE_DIR}/src/*.h"
- )
- # 将源文件分配到 Source Files 文件夹
- foreach(source IN LISTS SOURCE_FILES)
- get_filename_component(source_path "${source}" PATH)
- file(RELATIVE_PATH source_path_rel "${PROJECT_SOURCE_DIR}" "${source_path}")
- string(REPLACE "/" "\\" source_path_rel_win "${source_path_rel}")
- source_group("Source Files\\${source_path_rel_win}" FILES "${source}")
- endforeach()
- # 将头文件分配到 Header Files 文件夹
- foreach(header IN LISTS HEADER_FILES)
- get_filename_component(header_path "${header}" PATH)
- file(RELATIVE_PATH header_path_rel "${PROJECT_SOURCE_DIR}" "${header_path}")
- string(REPLACE "/" "\\" header_path_rel_win "${header_path_rel}")
- source_group("Header Files\\${header_path_rel_win}" FILES "${header}")
- endforeach()
- set(CMAKE_C_STANDARD 99)
- set(CMAKE_C_STANDARD_REQUIRED TRUE)
- set(CMAKE_CXX_STANDARD 20)
- set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
- set(CMAKE_POSITION_INDEPENDENT_CODE ON)
- # 安装复制
- set(CMAKE_INSTALL_ALWAYS_COPY TRUE)
- set(YLIB ${CMAKE_INSTALL_PREFIX}/../ylib)
- set(FASTWEB ${CMAKE_INSTALL_PREFIX}/../fastweb)
- # 包含路径
- if(MSVC)
- include_directories(
- ${PROJECT_SOURCE_DIR}/src
- ${PROJECT_SOURCE_DIR}/src/quirc
- ${YLIB}/include
- ${FASTWEB}/include
- ${FASTWEB}/include/lua
- )
- add_definitions(/bigobj)
- else()
- include_directories(
- ${PROJECT_SOURCE_DIR}/src
- ${PROJECT_SOURCE_DIR}/src/quirc
- /usr/local/include/ylib
- /usr/local/include/fastweb
- /opt/lua54/include
- /opt/fwbuild/fastweb/include
- /opt/fwbuild/fastweb/src
- /opt/fwbuild/fastweb/src/module
- /usr/local/include)
- endif()
- # 大图识别:提高 quirc 区域上限
- add_definitions(-DQUIRC_MAX_REGIONS=65534)
- # 添加共享库
- add_library(${MODULE_NAME} SHARED ${HEADER_FILES} ${SOURCE_FILES})
- if(MSVC)
- target_link_libraries(${MODULE_NAME} PRIVATE
- User32.lib
- Advapi32.lib
- IPHLPAPI.lib
- WS2_32.lib
- Shell32.lib
-
- $<$<CONFIG:Debug>:${FASTWEB}/bin/debug/3rdparty/lib/lua.lib>
- $<$<CONFIG:Debug>:${YLIB}/lib/ylib_d.lib>
- $<$<CONFIG:Release>:${FASTWEB}/bin/release/3rdparty/lib/lua.lib>
- $<$<CONFIG:Release>:${YLIB}/lib/ylib.lib>
- )
- else()
- target_link_libraries(${MODULE_NAME}
- hpsocket
- ylib
- /opt/lua54/lib/liblua.a
- pthread
- m
- )
- endif()
- install(TARGETS ${MODULE_NAME} DESTINATION $<IF:$<CONFIG:Debug>,${FASTWEB}/bin/debug/module/${MODULE_NAME},${FASTWEB}/bin/release/module/${MODULE_NAME}>)
|