跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • Online Tools
  • 用户
  • 群组
折叠
品牌标识

D2Learn Forums

小明小

小明

@小明
关于
帖子
2
主题
1
群组
0
粉丝
0
关注
0

帖子

最新 最佳 有争议的

  • 想请教一下大家构建C++模块架构是这样的吗?
    小明小 小明

    我想构建成cppm里声明导出模块和接口,定义实现内容放在.cpp文件里:

    module;
    
    #include <BinDrivers.hxx>
    #include <BinDrivers_Marker.hxx>
    #include <BinLDrivers_Marker.hxx>
    
    export module occ_module.application_framework.tkbin;
    
    export namespace occ_module {
    using BinDrivers = ::BinDrivers;
    using BinDrivers_Marker = ::BinDrivers_Marker;
    }
    

  • 想请教一下大家构建C++模块架构是这样的吗?
    小明小 小明
    cmake_minimum_required(VERSION 3.28)
    
    project(occ_module
        LANGUAGES CXX 
        VERSION 8.0.0
    )
    
    set(CMAKE_CXX_STANDARD 20)
    set(CMAKE_CXX_STANDARD_REQUIRED true)
    
    find_package(OpenCASCADE CONFIG REQUIRED)
    
    add_library(occ_module)
    target_link_libraries(occ_module PUBLIC 
        ${OpenCASCADE_LIBRARIES}
    )
    
    file(GLOB mfiles source/cppm/*/*.cppm source/cppm/*.cppm)
    file(GLOB sfiles "source/src/*/*.cpp" source/src/*.cpp)
    target_sources(occ_module 
    PUBLIC 
        FILE_SET occ_module_m
            TYPE CXX_MODULES
                FILES ${mfiles}
    PRIVATE 
        ${sfiles}
    )
    
    install(TARGETS occ_module 
        EXPORT occ_moduleTargets DESTINATION lib 
        FILE_SET occ_module_m
    )
    install(EXPORT occ_moduleTargets 
        NAMESPACE occ_module::
        DESTINATION lib/cmake/occ_module
    )
    include (CMakePackageConfigHelpers)
    configure_package_config_file(
        "cmake/config.cmake.in"
        ${CMAKE_CURRENT_BINARY_DIR}/occ_moduleConfig.cmake
        INSTALL_DESTINATION lib/cmake/occ_module
    )
    write_basic_package_version_file(
        ${CMAKE_CURRENT_BINARY_DIR}/occ_moduleConfigVersion.cmake
        VERSION ${PROJECT_VERSION}
        COMPATIBILITY SameMajorVersion
    )
    install(FILES 
        ${CMAKE_CURRENT_BINARY_DIR}/occ_moduleConfig.cmake 
        ${CMAKE_CURRENT_BINARY_DIR}/occ_moduleConfigVersion.cmake 
        DESTINATION lib/occ_module
    )
    
    find_package(Boost CONFIG REQUIRED unit_test_framework)
    enable_testing()
    file(GLOB tfiles tests/*.cpp)
    foreach (f ${tfiles})
    get_filename_component(e ${f} NAME)
    string(REPLACE ".cpp" "" e ${e})
    add_executable(${e} ${f})
    target_link_libraries(${e} PRIVATE 
        occ_module
        Boost::unit_test_framework
    )
    
    add_test(NAME ${e} COMMAND ${e})
    endforeach()
    
  • 登录

  • 登录或注册以进行搜索。
d2learn forums Powered by NodeBB
  • 第一个帖子
    最后一个帖子
0
  • 版块
  • 最新
  • 标签
  • 热门
  • Online Tools
  • 用户
  • 群组