mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-04-12 17:31:09 +08:00
[svn-r27725] Add initial commands to properly build the generated files.
Added HDF5_GENERATE_HEADERS ON to cacheinit.cmake file. Tested: local linux
This commit is contained in:
parent
61090f2cc3
commit
e040db8331
@ -41,3 +41,73 @@ macro (H5_SET_LIB_OPTIONS libtarget libname libtype)
|
||||
endif (APPLE)
|
||||
|
||||
endmacro (H5_SET_LIB_OPTIONS)
|
||||
|
||||
macro (H5_GEN_PERL_FILES)
|
||||
find_package (Perl)
|
||||
if (PERL_FOUND)
|
||||
add_custom_command (
|
||||
OUTPUT ${HDF5_BINARY_DIR}/H5Edefin.h
|
||||
PRE_BUILD
|
||||
COMMAND ${PERL_EXECUTABLE}
|
||||
ARGS ${HDF5_SOURCE_DIR}/bin/make_err.pl ${HDF5_SOURCE_DIR}/src/H5err.txt
|
||||
DEPENDS ${HDF5_SOURCE_DIR}/src/H5err.txt
|
||||
COMMENT " Creating err header"
|
||||
)
|
||||
|
||||
add_custom_command (
|
||||
OUTPUT ${HDF5_BINARY_DIR}/H5version.h
|
||||
PRE_BUILD
|
||||
COMMAND ${PERL_EXECUTABLE}
|
||||
ARGS ${HDF5_SOURCE_DIR}/bin/make_vers.pl ${HDF5_SOURCE_DIR}/src/H5vers.txt
|
||||
DEPENDS ${HDF5_SOURCE_DIR}/src/H5vers.txt
|
||||
COMMENT " Creating API version macro"
|
||||
)
|
||||
|
||||
add_custom_command (
|
||||
OUTPUT ${HDF5_BINARY_DIR}/H5overflow.h
|
||||
PRE_BUILD
|
||||
COMMAND ${PERL_EXECUTABLE}
|
||||
ARGS ${HDF5_SOURCE_DIR}/bin/make_overflow.pl ${HDF5_SOURCE_DIR}/src/H5overflow.txt
|
||||
DEPENDS ${HDF5_SOURCE_DIR}/src/H5overflow.txt
|
||||
COMMENT " Creating Assignment overflow macro"
|
||||
)
|
||||
|
||||
add_custom_target(run_perl_scripts ALL
|
||||
DEPENDS ${HDF5_BINARY_DIR}/H5Edefin.h ${HDF5_BINARY_DIR}/H5version.h ${HDF5_BINARY_DIR}/H5overflow.h
|
||||
)
|
||||
else (PERL_FOUND)
|
||||
message (STATUS "Cannot generate headers - perl not found")
|
||||
endif (PERL_FOUND)
|
||||
endmacro (H5_GEN_PERL_FILES)
|
||||
|
||||
macro (H5_GEN_FLEX_FILES)
|
||||
find_package (BISON)
|
||||
if (BISON_FOUND)
|
||||
find_package (FLEX)
|
||||
if (FLEX_FOUND)
|
||||
BISON_TARGET (H5LT_PARSER H5LTparse.y ${CMAKE_CURRENT_BINARY_DIR}/H5LTparse.c COMPILE_FLAGS -d)
|
||||
if (WIN32)
|
||||
FLEX_TARGET (H5LT_SCANNER H5LTanalyze.l ${CMAKE_CURRENT_BINARY_DIR}/H5LTanalyze.c COMPILE_FLAGS --wincompat)
|
||||
else (WIN32)
|
||||
FLEX_TARGET (H5LT_SCANNER H5LTanalyze.l ${CMAKE_CURRENT_BINARY_DIR}/H5LTanalyze.c)
|
||||
endif (WIN32)
|
||||
ADD_FLEX_BISON_DEPENDENCY(H5LT_SCANNER H5LT_PARSER)
|
||||
|
||||
if (BISON_H5LT_PARSER_DEFINED AND FLEX_H5LT_SCANNER_DEFINED)
|
||||
set_source_files_properties (${FLEX_H5LT_SCANNER_OUTPUTS}
|
||||
PROPERTIES OBJECT_DEPENDS ${BISON_H5LT_PARSER_OUTPUTS})
|
||||
set (HL_SRCS
|
||||
${BISON_H5LT_PARSER_OUTPUTS}
|
||||
${FLEX_H5LT_SCANNER_OUTPUTS}
|
||||
)
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR})
|
||||
else (BISON_H5LT_PARSER_DEFINED AND FLEX_H5LT_SCANNER_DEFINED)
|
||||
message (STATUS "Error during generate of files")
|
||||
endif (BISON_H5LT_PARSER_DEFINED AND FLEX_H5LT_SCANNER_DEFINED)
|
||||
else (FLEX_FOUND)
|
||||
message (STATUS "Cannot generate files - flex not found")
|
||||
endif (FLEX_FOUND)
|
||||
else (BISON_FOUND)
|
||||
message (STATUS "Cannot generate files - bison not found")
|
||||
endif (BISON_FOUND)
|
||||
endmacro (H5_GEN_FLEX_FILES)
|
||||
|
@ -8,6 +8,8 @@ set (CMAKE_INSTALL_FRAMEWORK_PREFIX "Library/Frameworks" CACHE STRING "Framework
|
||||
|
||||
set (HDF_PACKAGE_EXT "" CACHE STRING "Name of HDF package extension" FORCE)
|
||||
|
||||
set (HDF5_GENERATE_HEADERS ON CACHE BOOL "Rebuild Generated Files" FORCE)
|
||||
|
||||
set (HDF5_BUILD_FORTRAN ON CACHE BOOL "Build FORTRAN support" FORCE)
|
||||
|
||||
set (HDF5_BUILD_GENERATORS OFF CACHE BOOL "Build Test Generators" FORCE)
|
||||
|
@ -1,26 +1,71 @@
|
||||
cmake_minimum_required (VERSION 3.1.0)
|
||||
PROJECT (HDF5_HL_SRC)
|
||||
|
||||
if (HDF5_GENERATE_HEADERS)
|
||||
find_package (BISON)
|
||||
if (BISON_FOUND)
|
||||
find_package (FLEX)
|
||||
if (FLEX_FOUND)
|
||||
BISON_TARGET (H5LT_PARSER H5LTparse.y ${CMAKE_CURRENT_BINARY_DIR}/H5LTparse.c COMPILE_FLAGS -d)
|
||||
if (WIN32)
|
||||
FLEX_TARGET (H5LT_SCANNER H5LTanalyze.l ${CMAKE_CURRENT_BINARY_DIR}/H5LTanalyze.c COMPILE_FLAGS --wincompat)
|
||||
else (WIN32)
|
||||
FLEX_TARGET (H5LT_SCANNER H5LTanalyze.l ${CMAKE_CURRENT_BINARY_DIR}/H5LTanalyze.c)
|
||||
endif (WIN32)
|
||||
ADD_FLEX_BISON_DEPENDENCY(H5LT_SCANNER H5LT_PARSER)
|
||||
|
||||
if (BISON_H5LT_PARSER_DEFINED AND FLEX_H5LT_SCANNER_DEFINED)
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR})
|
||||
set (HL_SRCS
|
||||
${CMAKE_CURRENT_BINARY_DIR}/H5LTanalyze.c
|
||||
${CMAKE_CURRENT_BINARY_DIR}/H5LTparse.c
|
||||
)
|
||||
set (HL_HEADERS
|
||||
${CMAKE_CURRENT_BINARY_DIR}/H5LTparse.h
|
||||
)
|
||||
set_source_files_properties (${CMAKE_CURRENT_BINARY_DIR}/H5LTanalyze.c GENERATED)
|
||||
set_source_files_properties (${CMAKE_CURRENT_BINARY_DIR}/H5LTparse.c GENERATED)
|
||||
set_source_files_properties (${CMAKE_CURRENT_BINARY_DIR}/H5LTparse.h GENERATED)
|
||||
else (BISON_H5LT_PARSER_DEFINED AND FLEX_H5LT_SCANNER_DEFINED)
|
||||
message (STATUS "Error during generate of files")
|
||||
endif (BISON_H5LT_PARSER_DEFINED AND FLEX_H5LT_SCANNER_DEFINED)
|
||||
else (FLEX_FOUND)
|
||||
message (STATUS "Cannot generate files - flex not found")
|
||||
endif (FLEX_FOUND)
|
||||
else (BISON_FOUND)
|
||||
message (STATUS "Cannot generate files - bison not found")
|
||||
endif (BISON_FOUND)
|
||||
else (HDF5_GENERATE_HEADERS)
|
||||
set (HL_SRCS
|
||||
${HDF5_HL_SRC_SOURCE_DIR}/H5LTanalyze.c
|
||||
${HDF5_HL_SRC_SOURCE_DIR}/H5LTparse.c
|
||||
)
|
||||
set (HL_HEADERS
|
||||
${HDF5_HL_SRC_SOURCE_DIR}/H5LTparse.h
|
||||
)
|
||||
endif (HDF5_GENERATE_HEADERS)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# List Source files
|
||||
#-----------------------------------------------------------------------------
|
||||
set (HL_SRCS
|
||||
${HL_SRCS}
|
||||
${HDF5_HL_SRC_SOURCE_DIR}/H5DO.c
|
||||
${HDF5_HL_SRC_SOURCE_DIR}/H5DS.c
|
||||
${HDF5_HL_SRC_SOURCE_DIR}/H5IM.c
|
||||
${HDF5_HL_SRC_SOURCE_DIR}/H5LT.c
|
||||
${HDF5_HL_SRC_SOURCE_DIR}/H5LTanalyze.c
|
||||
${HDF5_HL_SRC_SOURCE_DIR}/H5LTparse.c
|
||||
#${HDF5_HL_SRC_SOURCE_DIR}/H5LTanalyze.c
|
||||
#${HDF5_HL_SRC_SOURCE_DIR}/H5LTparse.c
|
||||
${HDF5_HL_SRC_SOURCE_DIR}/H5PT.c
|
||||
${HDF5_HL_SRC_SOURCE_DIR}/H5TB.c
|
||||
)
|
||||
|
||||
set (HL_HEADERS
|
||||
${HL_HEADERS}
|
||||
${HDF5_HL_SRC_SOURCE_DIR}/H5DOpublic.h
|
||||
${HDF5_HL_SRC_SOURCE_DIR}/H5DSpublic.h
|
||||
${HDF5_HL_SRC_SOURCE_DIR}/H5IMpublic.h
|
||||
${HDF5_HL_SRC_SOURCE_DIR}/H5LTparse.h
|
||||
#${HDF5_HL_SRC_SOURCE_DIR}/H5LTparse.h
|
||||
${HDF5_HL_SRC_SOURCE_DIR}/H5LTpublic.h
|
||||
${HDF5_HL_SRC_SOURCE_DIR}/H5PTpublic.h
|
||||
${HDF5_HL_SRC_SOURCE_DIR}/H5TBpublic.h
|
||||
@ -54,7 +99,7 @@ if (BUILD_SHARED_LIBS)
|
||||
endif (BUILD_SHARED_LIBS)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Add file(s) to CMake Install
|
||||
# Add file(s) to CMake Install
|
||||
#-----------------------------------------------------------------------------
|
||||
install (
|
||||
FILES
|
||||
@ -72,7 +117,7 @@ if (HDF5_EXPORTED_TARGETS)
|
||||
if (BUILD_SHARED_LIBS)
|
||||
INSTALL_TARGET_PDB (${HDF5_HL_LIBSH_TARGET} ${HDF5_INSTALL_BIN_DIR} hllibraries)
|
||||
endif (BUILD_SHARED_LIBS)
|
||||
|
||||
|
||||
install (
|
||||
TARGETS
|
||||
${install_targets}
|
||||
|
@ -22,8 +22,8 @@ set (H5_HDRS
|
||||
${HDF5_SRC_DIR}/hdf5.h
|
||||
${HDF5_SRC_DIR}/H5api_adpt.h
|
||||
${HDF5_SRC_DIR}/H5public.h
|
||||
${HDF5_SRC_DIR}/H5version.h
|
||||
${HDF5_SRC_DIR}/H5overflow.h
|
||||
#${HDF5_SRC_DIR}/H5version.h
|
||||
#${HDF5_SRC_DIR}/H5overflow.h
|
||||
)
|
||||
IDE_GENERATED_PROPERTIES ("H5" "${H5_HDRS}" "${H5_SRCS}" )
|
||||
|
||||
@ -133,12 +133,12 @@ set (H5E_SRCS
|
||||
)
|
||||
|
||||
set (H5E_HDRS
|
||||
${HDF5_SRC_DIR}/H5Edefin.h
|
||||
${HDF5_SRC_DIR}/H5Einit.h
|
||||
#${HDF5_SRC_DIR}/H5Edefin.h
|
||||
#${HDF5_SRC_DIR}/H5Einit.h
|
||||
${HDF5_SRC_DIR}/H5Epkg.h
|
||||
${HDF5_SRC_DIR}/H5Epubgen.h
|
||||
#${HDF5_SRC_DIR}/H5Epubgen.h
|
||||
${HDF5_SRC_DIR}/H5Epublic.h
|
||||
${HDF5_SRC_DIR}/H5Eterm.h
|
||||
#${HDF5_SRC_DIR}/H5Eterm.h
|
||||
)
|
||||
IDE_GENERATED_PROPERTIES ("H5E" "${H5E_HDRS}" "${H5E_SRCS}" )
|
||||
|
||||
@ -801,57 +801,66 @@ add_custom_command (
|
||||
WORKING_DIRECTORY ${HDF5_BINARY_DIR}
|
||||
)
|
||||
|
||||
if (GENERATE_ERROR_HEADERS)
|
||||
if (HDF5_GENERATE_HEADERS)
|
||||
find_package (Perl)
|
||||
if (PERL_FOUND)
|
||||
add_custom_command (
|
||||
OUTPUT ${HDF5_BINARY_DIR}/H5Edefin.h
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/H5Edefin.h ${CMAKE_CURRENT_BINARY_DIR}/H5Einit.h ${CMAKE_CURRENT_BINARY_DIR}/H5Epubgen.h ${CMAKE_CURRENT_BINARY_DIR}/H5Eterm.h
|
||||
PRE_BUILD
|
||||
COMMAND ${PERL_EXECUTABLE}
|
||||
ARGS ${HDF5_SOURCE_DIR}/bin/make_err ${HDF5_SOURCE_DIR}/src/H5err.txt
|
||||
ARGS ${HDF5_SOURCE_DIR}/bin/make_err.pl ${HDF5_SOURCE_DIR}/src/H5err.txt
|
||||
DEPENDS ${HDF5_SOURCE_DIR}/src/H5err.txt
|
||||
COMMENT " Creating err header"
|
||||
)
|
||||
|
||||
add_custom_command (
|
||||
OUTPUT ${HDF5_BINARY_DIR}/H5version.h
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/H5version.h
|
||||
PRE_BUILD
|
||||
COMMAND ${PERL_EXECUTABLE}
|
||||
ARGS ${HDF5_SOURCE_DIR}/bin/make_vers ${HDF5_SOURCE_DIR}/src/H5vers.txt
|
||||
ARGS ${HDF5_SOURCE_DIR}/bin/make_vers.pl ${HDF5_SOURCE_DIR}/src/H5vers.txt
|
||||
DEPENDS ${HDF5_SOURCE_DIR}/src/H5vers.txt
|
||||
COMMENT " Creating API version macro"
|
||||
)
|
||||
|
||||
add_custom_command (
|
||||
OUTPUT ${HDF5_BINARY_DIR}/H5overflow.h
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/H5overflow.h
|
||||
PRE_BUILD
|
||||
COMMAND ${PERL_EXECUTABLE}
|
||||
ARGS ${HDF5_SOURCE_DIR}/bin/make_overflow ${HDF5_SOURCE_DIR}/src/H5overflow.txt
|
||||
ARGS ${HDF5_SOURCE_DIR}/bin/make_overflow.pl ${HDF5_SOURCE_DIR}/src/H5overflow.txt
|
||||
DEPENDS ${HDF5_SOURCE_DIR}/src/H5overflow.txt
|
||||
COMMENT " Creating Assignment overflow macro"
|
||||
)
|
||||
|
||||
add_custom_target(run_perl_scripts ALL
|
||||
DEPENDS ${HDF5_BINARY_DIR}/H5Edefin.h ${HDF5_BINARY_DIR}/H5version.h ${HDF5_BINARY_DIR}/H5overflow.h
|
||||
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/H5Edefin.h ${CMAKE_CURRENT_BINARY_DIR}/H5version.h ${CMAKE_CURRENT_BINARY_DIR}/H5overflow.h
|
||||
)
|
||||
else (PERL_FOUND)
|
||||
message (STATUS "Cannot generate headers - perl not found")
|
||||
endif (PERL_FOUND)
|
||||
endif (GENERATE_ERROR_HEADERS)
|
||||
endif (HDF5_GENERATE_HEADERS)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Add H5Tinit source to build - generated by H5Detect/CMake at configure time
|
||||
#-----------------------------------------------------------------------------
|
||||
set (common_SRCS ${common_SRCS} ${HDF5_BINARY_DIR}/H5Tinit.c)
|
||||
set_source_files_properties (${HDF5_BINARY_DIR}/H5Tinit.c GENERATED)
|
||||
set (common_SRCS ${common_SRCS} ${HDF5_BINARY_DIR}/H5lib_settings.c)
|
||||
set_source_files_properties (${HDF5_BINARY_DIR}/H5lib_settings.c GENERATED)
|
||||
set (common_SRCS ${common_SRCS} ${HDF5_BINARY_DIR}/H5Edefin.h)
|
||||
set_source_files_properties (${HDF5_BINARY_DIR}/H5Edefin.h GENERATED)
|
||||
set (common_SRCS ${common_SRCS} ${HDF5_BINARY_DIR}/H5version.h)
|
||||
set_source_files_properties (${HDF5_BINARY_DIR}/H5version.h GENERATED)
|
||||
set (common_SRCS ${common_SRCS} ${HDF5_BINARY_DIR}/H5overflow.h)
|
||||
set_source_files_properties (${HDF5_BINARY_DIR}/H5overflow.h GENERATED)
|
||||
|
||||
if (HDF5_GENERATE_HEADERS)
|
||||
set (common_SRCS ${common_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/H5Edefin.h)
|
||||
set (common_SRCS ${common_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/H5Einit.h)
|
||||
set (common_SRCS ${common_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/H5Epubgen.h)
|
||||
set (common_SRCS ${common_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/H5Eterm.h)
|
||||
set (common_SRCS ${common_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/H5version.h)
|
||||
set (common_SRCS ${common_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/H5overflow.h)
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR})
|
||||
else (HDF5_GENERATE_HEADERS)
|
||||
set (common_SRCS ${common_SRCS} ${HDF5_SRC_DIR}/H5Edefin.h)
|
||||
set (common_SRCS ${common_SRCS} ${HDF5_SRC_DIR}/H5Einit.h)
|
||||
set (common_SRCS ${common_SRCS} ${HDF5_SRC_DIR}/H5Epubgen.h)
|
||||
set (common_SRCS ${common_SRCS} ${HDF5_SRC_DIR}/H5Eterm.h)
|
||||
set (common_SRCS ${common_SRCS} ${HDF5_SRC_DIR}/H5version.h)
|
||||
set (common_SRCS ${common_SRCS} ${HDF5_SRC_DIR}/H5overflow.h)
|
||||
endif (HDF5_GENERATE_HEADERS)
|
||||
|
||||
add_library (${HDF5_LIB_TARGET} STATIC ${common_SRCS} ${H5_PUBLIC_HEADERS} ${H5_PRIVATE_HEADERS})
|
||||
TARGET_C_PROPERTIES (${HDF5_LIB_TARGET} STATIC " " " ")
|
||||
|
Loading…
x
Reference in New Issue
Block a user