PROJECT(headerparser)

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 "${headerparser_BINARY_DIR}/HeaderLexerCore.h"
	       "${headerparser_BINARY_DIR}/HeaderLexerCore.cpp"
	COMMAND "${make_headerlexer_exe}" HeaderLexerCore
	        "${headerparser_BINARY_DIR}/HeaderLexerCore.h"
	        "${headerparser_BINARY_DIR}/HeaderLexerCore.cpp"
	        HeaderLexerDefinitions HeaderLexerDefinitions.h
	        HeaderParser HeaderParser.h
	DEPENDS make_headerlexer HeaderLexerDefinitions.h
)

SET(
	built_sources
	"${headerparser_BINARY_DIR}/HeaderLexerCore.h"
	"${headerparser_BINARY_DIR}/HeaderLexerCore.cpp"
)

SET_SOURCE_FILES_PROPERTIES(
	${built_sources} PROPERTIES
	GENERATED TRUE
)

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

ADD_LIBRARY(
	headerparser STATIC
	HeaderParser.cpp HeaderParser.h HeaderLexerDefinitions.h
	${built_sources}
)
