mirror of
https://github.com/CHN-beta/ufo.git
synced 2024-10-22 19:58:44 +08:00
使用 cmake 管理文件
This commit is contained in:
parent
5c921943de
commit
29a378acbc
2
.gitignore
vendored
2
.gitignore
vendored
@ -5,5 +5,5 @@ main
|
|||||||
plot
|
plot
|
||||||
out.yaml
|
out.yaml
|
||||||
.ccls-cache
|
.ccls-cache
|
||||||
.xmake/
|
.cache
|
||||||
build/
|
build/
|
||||||
|
26
CMakeLists.txt
Normal file
26
CMakeLists.txt
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.14)
|
||||||
|
project(ufo VERSION 0.0.0 LANGUAGES CXX)
|
||||||
|
enable_testing()
|
||||||
|
include(GNUInstallDirs)
|
||||||
|
|
||||||
|
set_property(GLOBAL PROPERTY CXX_STANDARD 23)
|
||||||
|
set_property(GLOBAL PROPERTY CXX_STANDARD_REQUIRED ON)
|
||||||
|
set_property(GLOBAL PROPERTY CXX_EXTENSIONS OFF)
|
||||||
|
|
||||||
|
find_package(yaml-cpp REQUIRED)
|
||||||
|
find_package(Eigen3 REQUIRED)
|
||||||
|
find_package(fmt REQUIRED)
|
||||||
|
find_package(concurrencpp REQUIRED)
|
||||||
|
find_package(HighFive REQUIRED)
|
||||||
|
find_package(TBB REQUIRED)
|
||||||
|
find_package(Matplot++ REQUIRED)
|
||||||
|
find_path(ZPP_BITS_INCLUDE_DIR zpp_bits.h REQUIRED)
|
||||||
|
|
||||||
|
add_executable(ufo src/ufo.cpp)
|
||||||
|
target_include_directories(ufo PRIVATE ${PROJECT_SOURCE_DIR}/include ${ZPP_BITS_INCLUDE_DIR})
|
||||||
|
target_link_libraries(ufo PRIVATE
|
||||||
|
yaml-cpp Eigen3::Eigen fmt::fmt concurrencpp::concurrencpp HighFive_HighFive TBB::tbb Matplot++::matplot)
|
||||||
|
|
||||||
|
get_property(ImportedTargets DIRECTORY "${CMAKE_SOURCE_DIR}" PROPERTY IMPORTED_TARGETS)
|
||||||
|
message("Imported targets: ${ImportedTargets}")
|
||||||
|
message("List of compile features: ${CMAKE_CXX_COMPILE_FEATURES}")
|
@ -807,11 +807,11 @@
|
|||||||
"touchix": "touchix"
|
"touchix": "touchix"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1695648380,
|
"lastModified": 1695703232,
|
||||||
"narHash": "sha256-8zQct7OdcAtzwsvyPy07wImEtO6v0Rz//grrDtol+Jo=",
|
"narHash": "sha256-JqKKV5Zh3r4SAmK1Y0WdZaN5chRuaWRxw5hv9YPCRlQ=",
|
||||||
"owner": "CHN-beta",
|
"owner": "CHN-beta",
|
||||||
"repo": "nixos",
|
"repo": "nixos",
|
||||||
"rev": "e21c7a916a66de6894c3e785a3a0d5f621458272",
|
"rev": "6318b938c2b3742874982d5d1a338656a50e493b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
13
flake.nix
13
flake.nix
@ -5,20 +5,17 @@
|
|||||||
outputs = inputs:
|
outputs = inputs:
|
||||||
let
|
let
|
||||||
pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux;
|
pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux;
|
||||||
localPackages = inputs.nixos.nixosConfigurations.pc.pkgs.localPackages;
|
localPackages = import "${inputs.nixos}/local/pkgs" { inherit pkgs; inherit (inputs.nixpkgs) lib; };
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
devShell.x86_64-linux = pkgs.mkShell.override { stdenv = pkgs.stdenvNoCC; }
|
devShell.x86_64-linux = pkgs.mkShell.override { stdenv = pkgs.gcc13Stdenv; }
|
||||||
{
|
{
|
||||||
packages = with pkgs; [ xmake gcc13 pkg-config cmake ];
|
packages = with pkgs; [ pkg-config cmake ninja ];
|
||||||
inputsFrom = with pkgs;
|
buildInputs = with pkgs;
|
||||||
[
|
[
|
||||||
yaml-cpp eigen fmt localPackages.concurrencpp highfive
|
yaml-cpp eigen fmt localPackages.concurrencpp highfive tbb_2021_8.dev localPackages.matplotplusplus
|
||||||
hdf5.dev tbb_2021_8.dev localPackages.matplotplusplus
|
|
||||||
localPackages.zpp-bits
|
localPackages.zpp-bits
|
||||||
];
|
];
|
||||||
PKG_CONFIG_PATH = "${pkgs.tbb_2021_8.dev}/lib/pkgconfig:${pkgs.yaml-cpp}/share/pkgconfig";
|
|
||||||
yaml-cpp_DIR = "${pkgs.yaml-cpp}/share/cmake/yaml-cpp";
|
|
||||||
hardeningDisable = [ "all" ];
|
hardeningDisable = [ "all" ];
|
||||||
NIX_DEBUG = "1";
|
NIX_DEBUG = "1";
|
||||||
};
|
};
|
||||||
|
26
test.cpp
Normal file
26
test.cpp
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
# include <eigen3/Eigen/Dense>
|
||||||
|
# include <zpp_bits.h>
|
||||||
|
# include <span>
|
||||||
|
# include <iostream>
|
||||||
|
|
||||||
|
namespace Eigen
|
||||||
|
{
|
||||||
|
constexpr auto serialize(auto & archive, Eigen::Matrix3d& matrix)
|
||||||
|
{
|
||||||
|
return archive(std::span<double, 9>(matrix.data(), 9));
|
||||||
|
}
|
||||||
|
constexpr auto serialize(auto & archive, const Eigen::Matrix3d& matrix)
|
||||||
|
{
|
||||||
|
return archive(std::span<const double, 9>(matrix.data(), 9));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
auto [data, in, out] = zpp::bits::data_in_out();
|
||||||
|
Eigen::Matrix3d PrimativeCell = Eigen::Matrix3d::Identity();
|
||||||
|
out(PrimativeCell);
|
||||||
|
Eigen::Matrix3d PrimativeCell2;
|
||||||
|
in(PrimativeCell2);
|
||||||
|
std::cout << PrimativeCell2 << std::endl;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user