PROJECT(headerparser)

SET(bin_dir ${headerparser_BINARY_DIR})

ADD_EXECUTABLE(make_headerlexer lexcode.cpp)
TARGET_LINK_LIBRARIES(make_headerlexer lexgen)

GET_TARGET_PROPERTY(make_headerlexer_exe make_headerlexer LOCATION)

ADD_CUSTOM_COMMAND(
	OUTPUT ${bin_dir}/HeaderLexerCore.h ${bin_dir}/HeaderLexerCore.cpp
	COMMAND ${make_headerlexer_exe} HeaderLexerCore
		${bin_dir}/HeaderLexerCore.h ${bin_dir}/HeaderLexerCore.cpp
		HeaderLexerDefinitions HeaderLexerDefinitions.h HeaderParser HeaderParser.h
	DEPENDS make_headerlexer HeaderLexerDefinitions.h
)

INCLUDE_DIRECTORIES(
	${headerparser_SOURCE_DIR}
	${headerparser_BINARY_DIR}
	${lexgen_SOURCE_DIR}
)

ADD_LIBRARY(
	headerparser STATIC
	HeaderParser.cpp HeaderParser.h HeaderLexerDefinitions.h
	${bin_dir}/HeaderLexerCore.cpp ${bin_dir}/HeaderLexerCore.h
)

SET_SOURCE_FILES_PROPERTIES(
	${bin_dir}/HeaderLexerCore.cpp ${bin_dir}/HeaderLexerCore.h
	PROPERTIES
	GENERATED TRUE
)