add_rules("mode.debug","mode.release") set_languages("c++23") add_requires("pybind11") if is_mode("release")then set_optimize("aggressive") --这里使用了激进的优化,可能会导致浮点数计算不准确,考虑到本项目没有浮点计算,酌情考虑开启 -- set_optimize("fastest") --上面和下面的二选一,--表示注释 if is_plat("windows")then -- 矢量化加速似乎没用 -- add_cxxflags("/arch:AVX512") elseif is_plat("linux") or is_plat("mingw") or is_plat("clang")then -- 矢量化加速似乎没用 -- add_cxxflags("-march=native") end end if is_plat("windows")then add_cxxflags("/openmp:llvm") elseif is_plat("linux") or is_plat("mingw") or is_plat("clang")then add_cxxflags("-fopenmp") add_ldflags("-fopenmp") end add_includedirs("src/tools") set_rundir("./") target("dna_pybind") add_defines("DNA_IS_PYBIND") add_packages("pybind11") set_kind("shared") if is_plat("windows")then set_filename("dna.pyd") else set_basename("dna") end add_files("src/main.cpp") add_shflags("-fopenmp") after_build( function (target) print(target:targetdir()) os.cp("*.py*",target:targetdir().."/dna/") if is_plat("windows") then os.cp("./dll/*.dll",target:targetdir()) end end ) target("dna_bin") set_kind("binary") add_files("src/main.cpp")