Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ release
debug
Test/ProjectTest/Build
CMakeUserPresets.json
.claude

# Python build-related files
pyebsd/build/
Expand Down
71 changes: 69 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,11 @@ option(EbsdLib_BUILD_H5SUPPORT "Build H5Support Library" OFF)


# set project's name
project(EbsdLibProj VERSION 2.2.0)
project(EbsdLibProj VERSION 2.3.0)


# Request C++17 standard, using new CMake variables.
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

Expand Down Expand Up @@ -114,6 +114,13 @@ else()
message(WARNING "The Eigen Library is required for some algorithms to execute. These algorithms will be disabled.")
endif()


# -----------------------------------------------------------------------
# Find FMT library
# -----------------------------------------------------------------------
find_package(fmt CONFIG REQUIRED)


#-------------------------------------------------------------------------------
# Determine if we need the ghcFilesystem library
#-------------------------------------------------------------------------------
Expand Down Expand Up @@ -160,6 +167,66 @@ endif()

include(${EbsdLibProj_SOURCE_DIR}/Source/EbsdLib/SourceList.cmake)



# ------------------------------------------------------------------------------
# Check if a different Data_Archive web site is being used.
# The alternate would be for the internal build bots that can download from a
# local webserver
# ------------------------------------------------------------------------------
if("${DATA_ARCHIVE_WEB_SITE}" STREQUAL "")
set(DATA_ARCHIVE_WEB_SITE "https://github.com/bluequartzsoftware/ebsdlib/releases/download/Data_Archive/")
endif()

file(TO_CMAKE_PATH "${EBSDLIB_DATA_DIR}" EBSDLIB_DATA_DIR_NORM)


# -----------------------------------------------------------------------
# This section creates a global file that holds the commands to copy data
# files, test data files, pipelines into a single cmake file that gets
# generated. This reduces the many copy targets to a single target.
# -----------------------------------------------------------------------
set_property(GLOBAL PROPERTY FETCH_FILE_INDEX 0)
set(FETCH_FILE_PATH "${EbsdLibProj_BINARY_DIR}/EbsdLibProj_fetch_remote_files.cmake")
set_property(GLOBAL PROPERTY FETCH_FILE_PATH "${FETCH_FILE_PATH}")
file(WRITE ${FETCH_FILE_PATH} "# -----------------------------------------------------------------------
# This file is programmatically generated from the CMake file ${CMAKE_CURRENT_LIST_FILE}
# This file has the commands to download each of the test files.
# The WORKING_DIRECTORY is set to the following CMake code:
# ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/$<$<CONFIG:Debug>:Debug>$<$<CONFIG:Release>:Release>
# -----------------------------------------------------------------------\n
cmake_policy(SET CMP0012 NEW)
cmake_policy(SET CMP0054 NEW)
# The ``FindPythonInterp`` and ``FindPythonLibs`` modules are removed.
# if(CMAKE_VERSION VERSION_GREATER \"3.27.0\")
# cmake_policy(SET CMP0148 NEW)
# endif()
# resolves symlinks before collapsing ../ components.
if(CMAKE_VERSION VERSION_GREATER \"3.28.0\")
cmake_policy(SET CMP0152 NEW)
endif()
set(CONFIG \${CMAKE_CONFIG})
set(LOG_FILE \"${EbsdLibProj_BINARY_DIR}/EbsdLibProj_fetch_remote_files.log\")\n
FILE(WRITE \"\${LOG_FILE}\" \"Featch File Log Start\n\")\n
")

message(STATUS "FETCH_FILE_PATH: ${FETCH_FILE_PATH}")

set(TEST_WORKING_DIR "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
if(CMAKE_GENERATOR MATCHES "Visual Studio")
set(TEST_WORKING_DIR "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/$<$<CONFIG:Debug>:Debug>$<$<CONFIG:Release>:Release>")
endif()

if(EBSDLIB_DOWNLOAD_TEST_FILES)
add_custom_target(EbsdLib_Fetch_Remote_Data_Files ALL
COMMAND "${CMAKE_COMMAND}" -DCMAKE_CONFIG=$<CONFIG> -P "${FETCH_FILE_PATH}"
COMMENT "Downloading EbsdLib Test Data Files"
# WORKING_DIRECTORY "${TEST_WORKING_DIR}"
)
set_target_properties(EbsdLib_Fetch_Remote_Data_Files PROPERTIES FOLDER ZZ_FETCH_TEST_FILES)
endif()


# ------------------------------------------------------------------------------
# Build Unit Test
# ------------------------------------------------------------------------------
Expand Down
8 changes: 8 additions & 0 deletions CMakePresets.json
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,14 @@
"type": "BOOL",
"value": "ON"
},
"EBSDLIB_DOWNLOAD_TEST_FILES": {
"type": "BOOL",
"value": "ON"
},
"EBSDLIB_DATA_DIR": {
"type": "PATH",
"value": "${sourceDir}/../EbsdLib_Data"
},
"BUILDNAME": {
"type": "STRING",
"value": "$env{PRESET_NAME}-$env{BUILD_BUILDNUMBER}-PR$env{SYSTEM_PULLREQUEST_PULLREQUESTNUMBER}"
Expand Down
12 changes: 12 additions & 0 deletions Data/EbsdTestFiles/quats_wxyz_10.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
qu
10
0.92934656 -0.36858946 0.0081792902 0.019746415
0.93205625 -0.3620477 0.012823511 -0.0053116297
0.92983103 -0.36758989 0.016257482 -0.0052523925
0.93061996 -0.36583757 0.010389386 -0.0012097559
0.92853022 -0.37113327 -0.0051697767 0.0080596395
0.92621905 -0.37646216 -0.0033933693 -0.019568495
0.92438912 -0.38072789 0.02168753 0.0089833615
0.92300296 -0.38422647 -0.002270041 0.020744085
0.92018086 -0.39103976 -0.018711079 -0.0022371865
0.91371483 -0.40632781 0.0044282493 -0.0018341328
Loading
Loading