Files
CoolProp/dev/cmake/generate_fluid_headers.cmake
2017-11-27 11:19:18 +01:00

44 lines
2.7 KiB
CMake

#######################################
# FLUID FILE GENERATOR #
#-------------------------------------#
# This file calls the script that #
# generates header files from the #
# fluid information stored in JSON #
# format. It should only be used by #
# the main CoolProp target. #
#######################################
if(NOT COOLPROP_SOURCES_ROOT)
message(FATAL_ERROR "Root directory missing, aborting.")
endif()
find_package(PythonInterp 2.7 REQUIRED QUIET)
set(COOLPROP_HEADER_SOURCES_PREFIX "${COOLPROP_SOURCES_ROOT}/dev")
set(COOLPROP_HEADER_TARGETS_PREFIX "${COOLPROP_SOURCES_ROOT}/include")
if(NOT COOLPROP_DEBUG_CMAKE)
set(COOLPROP_VARIABLE_OPTIONS_TMP "QUIET")
else()
set(COOLPROP_VARIABLE_OPTIONS_TMP "DEBUG")
endif()
execute_process(
COMMAND "${PYTHON_EXECUTABLE}" "${COOLPROP_HEADER_SOURCES_PREFIX}/generate_headers.py" "combine_json" "${COOLPROP_VARIABLE_OPTIONS_TMP}"
)
macro(add_header_generator COOLPROP_SOURCE_FILE_TMP COOLPROP_TARGET_FILE_TMP COOLPROP_VARIABLE_NAME_TMP)
#add_custom_command(
# OUTPUT "${COOLPROP_HEADER_TARGETS_PREFIX}/${COOLPROP_TARGET_FILE_TMP}"
# COMMAND "${PYTHON_EXECUTABLE}" "${COOLPROP_HEADER_SOURCES_PREFIX}/generate_headers.py" "${COOLPROP_HEADER_SOURCES_PREFIX}/${COOLPROP_SOURCE_FILE_TMP}" "${COOLPROP_HEADER_TARGETS_PREFIX}/${COOLPROP_TARGET_FILE_TMP}" "${COOLPROP_VARIABLE_NAME_TMP}" "${COOLPROP_VARIABLE_OPTIONS_TMP}"
# DEPENDS "${COOLPROP_HEADER_SOURCES_PREFIX}/generate_headers.py" "${COOLPROP_HEADER_SOURCES_PREFIX}/${COOLPROP_SOURCE_FILE_TMP}"
#)
#add_dependencies(generate_fluid_headers "${COOLPROP_HEADER_TARGETS_PREFIX}/${COOLPROP_TARGET_FILE_TMP}")
execute_process(
COMMAND "${PYTHON_EXECUTABLE}" "${COOLPROP_HEADER_SOURCES_PREFIX}/generate_headers.py" "${COOLPROP_HEADER_SOURCES_PREFIX}/${COOLPROP_SOURCE_FILE_TMP}" "${COOLPROP_HEADER_TARGETS_PREFIX}/${COOLPROP_TARGET_FILE_TMP}" "${COOLPROP_VARIABLE_NAME_TMP}" "${COOLPROP_VARIABLE_OPTIONS_TMP}"
)
endmacro()
add_header_generator("all_fluids.json" "all_fluids_JSON.h" "all_fluids_JSON")
add_header_generator("all_incompressibles.json" "all_incompressibles_JSON.h" "all_incompressibles_JSON")
add_header_generator("mixtures/mixture_departure_functions.json" "mixture_departure_functions_JSON.h" "mixture_departure_functions_JSON")
add_header_generator("mixtures/mixture_binary_pairs.json" "mixture_binary_pairs_JSON.h" "mixture_binary_pairs_JSON")
add_header_generator("mixtures/predefined_mixtures.json" "predefined_mixtures_JSON.h" "predefined_mixtures_JSON")
add_header_generator("cubics/all_cubic_fluids.json" "all_cubics_JSON.h" "all_cubics_JSON")
add_header_generator("cubics/cubic_fluids_schema.json" "cubic_fluids_schema_JSON.h" "cubic_fluids_schema_JSON")