PROJECT(confio)

SUBDIRS(xmllexer)

SET(bin_dir ${confio_BINARY_DIR})

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

GET_TARGET_PROPERTY(make_conflexer_exe make_conflexer LOCATION)

ADD_CUSTOM_COMMAND(
	OUTPUT ${bin_dir}/ConfLexerCore.h ${bin_dir}/ConfLexerCore.cpp
	COMMAND ${make_conflexer_exe} ConfLexerCore
		${bin_dir}/ConfLexerCore.h ${bin_dir}/ConfLexerCore.cpp
		ConfLexerDefinitions ConfLexerDefinitions.h ConfIO ConfIO.h
	DEPENDS make_conflexer ConfLexerDefinitions.h
)

INCLUDE_DIRECTORIES(
	${confio_SOURCE_DIR}
	${confio_BINARY_DIR}
	${xmllexer_SOURCE_DIR}
	${xmllexer_BINARY_DIR}
	${lexgen_SOURCE_DIR}
)

ADD_LIBRARY(
	confio STATIC
	PortSet.cpp PortSet.h Conf.cpp Conf.h
	ConfError.h ConfErrorHandler.h ConfIO.cpp ConfIO.h
	ConfigFileStructure.cpp ConfigFileStructure.h ConfLexerDefinitions.h
	IPv4SubnetParser.cpp IPv4SubnetParser.h
	UrlPatterns.cpp UrlPatterns.h CombinedUrlPatterns.cpp CombinedUrlPatterns.h
	UrlsFileStructure.cpp UrlsFileStructure.h
	RegexFilterDescriptor.cpp RegexFilterDescriptor.h
	TextPattern.cpp TextPattern.h ContentFilterList.cpp ContentFilterList.h
	FilterFileStructure.cpp FilterFileStructure.h
	Forwarding.cpp Forwarding.h
	FilterTag.h FilterGroupTag.h
	${bin_dir}/ConfLexerCore.cpp ${bin_dir}/ConfLexerCore.h
)

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

ADD_DEPENDENCIES(confio xmllexer)