# Fontmatrix src/CMakeLists.txt v1

set(fontmatrix_SRCS
${CMAKE_CURRENT_SOURCE_DIR}/aboutwidget.cpp
${CMAKE_CURRENT_SOURCE_DIR}/activationwidget.cpp
${CMAKE_CURRENT_SOURCE_DIR}/activationwidgetitem.cpp
${CMAKE_CURRENT_SOURCE_DIR}/browserwidget.cpp
${CMAKE_CURRENT_SOURCE_DIR}/chartwidget.cpp
${CMAKE_CURRENT_SOURCE_DIR}/dataexport.cpp
${CMAKE_CURRENT_SOURCE_DIR}/dataloader.cpp
${CMAKE_CURRENT_SOURCE_DIR}/dumpdialog.cpp
${CMAKE_CURRENT_SOURCE_DIR}/familywidget.cpp
${CMAKE_CURRENT_SOURCE_DIR}/filterbar.cpp
${CMAKE_CURRENT_SOURCE_DIR}/filterdata.cpp
${CMAKE_CURRENT_SOURCE_DIR}/filtersdialog.cpp
${CMAKE_CURRENT_SOURCE_DIR}/filtersdialogitem.cpp
${CMAKE_CURRENT_SOURCE_DIR}/filteritem.cpp
${CMAKE_CURRENT_SOURCE_DIR}/filtermeta.cpp
${CMAKE_CURRENT_SOURCE_DIR}/filterpanose.cpp
${CMAKE_CURRENT_SOURCE_DIR}/filtertag.cpp
${CMAKE_CURRENT_SOURCE_DIR}/floatingwidget.cpp
${CMAKE_CURRENT_SOURCE_DIR}/floatingwidgetsregister.cpp
${CMAKE_CURRENT_SOURCE_DIR}/floatingwidgettoolbar.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fmactivate.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fmactivationreport.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fmaltcontext.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fmaltselector.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fmbaseshaper.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fmdumpinfo.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fmencdata.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fmfloatingpreview.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fmfontcompareview.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fmfontdb.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fmfontextract.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fmfontstrings.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fmfreetypelib.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fmglyphhighlight.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fmglyphsview.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fminfodisplay.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fmkernfeat.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fmlayoptwidget.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fmlayout.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fmmatchraster.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fmmissingfonthelper.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fmnamelist.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fmotf.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fmpaths.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fmplayground.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fmpreviewlist.cpp
# fmprintdialog.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fmrepair.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fmsampletextview.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fmshaper_own.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fmuniblocks.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fmutils.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fmvariants.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fmverticalbutton.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fontbook.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fontbookdialog.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fontcomparewidget.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fontitem.cpp
${CMAKE_CURRENT_SOURCE_DIR}/fontmatrixshaper.cpp
${CMAKE_CURRENT_SOURCE_DIR}/glyphtosvghelper.cpp
${CMAKE_CURRENT_SOURCE_DIR}/helpbrowser.cpp
# ${CMAKE_CURRENT_SOURCE_DIR}/helpwidget.cpp
${CMAKE_CURRENT_SOURCE_DIR}/importedfontsdialog.cpp
${CMAKE_CURRENT_SOURCE_DIR}/importtags.cpp
${CMAKE_CURRENT_SOURCE_DIR}/iview.cpp
${CMAKE_CURRENT_SOURCE_DIR}/QHexView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/parallelcoor.cpp
${CMAKE_CURRENT_SOURCE_DIR}/puzzleviewimp.cpp
#${CMAKE_CURRENT_SOURCE_DIR}/listdockwidget.cpp
${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
${CMAKE_CURRENT_SOURCE_DIR}/mainviewwidget.cpp
${CMAKE_CURRENT_SOURCE_DIR}/metawidget.cpp
${CMAKE_CURRENT_SOURCE_DIR}/modeltext.cpp
${CMAKE_CURRENT_SOURCE_DIR}/openclosearrow.cpp
${CMAKE_CURRENT_SOURCE_DIR}/panosedialog.cpp
${CMAKE_CURRENT_SOURCE_DIR}/panosematch.cpp
${CMAKE_CURRENT_SOURCE_DIR}/panosemodel.cpp
${CMAKE_CURRENT_SOURCE_DIR}/panosewidget.cpp
${CMAKE_CURRENT_SOURCE_DIR}/pangoshaper.cpp
${CMAKE_CURRENT_SOURCE_DIR}/playwidget.cpp
${CMAKE_CURRENT_SOURCE_DIR}/prefspaneldialog.cpp
${CMAKE_CURRENT_SOURCE_DIR}/progressbarduo.cpp
${CMAKE_CURRENT_SOURCE_DIR}/remotedir.cpp
#${CMAKE_CURRENT_SOURCE_DIR}/savedata.cpp
${CMAKE_CURRENT_SOURCE_DIR}/sampletoolbar.cpp
${CMAKE_CURRENT_SOURCE_DIR}/samplewidget.cpp
${CMAKE_CURRENT_SOURCE_DIR}/schelptreemodel.cpp
${CMAKE_CURRENT_SOURCE_DIR}/sctextbrowser.cpp
${CMAKE_CURRENT_SOURCE_DIR}/shortcuts.cpp
${CMAKE_CURRENT_SOURCE_DIR}/systray.cpp
# ${CMAKE_CURRENT_SOURCE_DIR}/tagseteditor.cpp
${CMAKE_CURRENT_SOURCE_DIR}/tagswidget.cpp
${CMAKE_CURRENT_SOURCE_DIR}/tagswidget_listmodel.cpp
${CMAKE_CURRENT_SOURCE_DIR}/textprogression.cpp
${CMAKE_CURRENT_SOURCE_DIR}/treeitem.cpp
${CMAKE_CURRENT_SOURCE_DIR}/treemodel.cpp
${CMAKE_CURRENT_SOURCE_DIR}/tttableview.cpp
${CMAKE_CURRENT_SOURCE_DIR}/typotek.cpp
)

IF(HARFBUZZSHAPER)
	SET(HARFBUZZ_SRCS
	harfbuzzqtshaper.cpp
	fmshaper.cpp)
ENDIF(HARFBUZZSHAPER)

IF(ICUSHAPER)
	SET(ICU_SRCS icushaper.cpp)
ENDIF(ICUSHAPER)

IF(M17NSHAPER)
	SET(M17N_SRCS
	m17nshaper.cpp
	)
ENDIF(M17NSHAPER)

IF(PODOFO)
	SET(PODOFO_SRCS
	fmpdffontextractor.cpp
	)
ENDIF(PODOFO)

SET(SHAPERS_SRCS
${HARFBUZZ_SRCS}
${ICU_SRCS}
${M17N_SRCS}
)

SET(SHAPERS_LIBRARIES
${ICU_LIBRARIES}
${M17N_LIBRARIES}
)

IF(WANT_PYTHONQT)
	SET(PYTHONQT_SCRIPTER_SRCS
	${CMAKE_CURRENT_SOURCE_DIR}/fmpython_w.cpp
	${CMAKE_CURRENT_SOURCE_DIR}/fmscriptconsole.cpp
	)
	SET(PYTHONQT_SCRIPTER_MOC_HDRS
	fmpython_w.h
	fmscriptconsole.h
	)
	SET(PYTHONQT_SCRIPTER_UIS
	${CMAKE_CURRENT_SOURCE_DIR}/scriptconsole.ui
	)
	SET(PYTHONQT_LIB PythonQt)
ENDIF(WANT_PYTHONQT)


SET(fontmatrix_MOC_HDRS
aboutwidget.h
browserwidget.h
activationwidget.h
activationwidgetitem.h
chartwidget.h
dataexport.h
dumpdialog.h
familywidget.h
filterbar.h
filterdata.h
filtersdialog.h
filtersdialogitem.h
filteritem.h
floatingwidget.h
floatingwidgettoolbar.h
fmactivate.h
fmaltcontext.h
fmaltselector.h
fmfloatingpreview.h
fmfontcompareview.h
fmfontdb.h
fmfontextract.h
fmfontstrings.h
fmfreetypelib.h
fmglyphhighlight.h
fmglyphsview.h
fmlayoptwidget.h
fmlayout.h
fmmatchraster.h
fmnamelist.h
fmplayground.h
fmpreviewlist.h
fmrepair.h
fmsampletextview.h
fontbookdialog.h
fontcomparewidget.h
fontitem.h
helpbrowser.h
# helpwidget.h
importtags.h
iview.h
QHexView.h
#listdockwidget.h
mainviewwidget.h
metawidget.h
modeltext.h
openclosearrow.h
panosedialog.h
panosewidget.h
parallelcoor.h
playwidget.h
prefspaneldialog.h
progressbarduo.h
remotedir.h
sampletoolbar.h
samplewidget.h
sctextbrowser.h
shortcuts.h
systray.h
# tagseteditor.h
tagswidget.h
tagswidget_listmodel.h
#textprogression.h
tttableview.h
typotek.h
)
QT4_WRAP_CPP(fontmatrix_MOC_SRCS 
${fontmatrix_MOC_HDRS} 
${PYTHONQT_SCRIPTER_MOC_HDRS})


SET(fontmatrix_UIS
${CMAKE_CURRENT_SOURCE_DIR}/about.ui
${CMAKE_CURRENT_SOURCE_DIR}/activationreportdialog.ui
${CMAKE_CURRENT_SOURCE_DIR}/activationwidget.ui
${CMAKE_CURRENT_SOURCE_DIR}/activationwidgetitem.ui
${CMAKE_CURRENT_SOURCE_DIR}/altselectorwidget.ui
${CMAKE_CURRENT_SOURCE_DIR}/bookexport.ui
${CMAKE_CURRENT_SOURCE_DIR}/browserwidget.ui
${CMAKE_CURRENT_SOURCE_DIR}/chartwidget.ui
${CMAKE_CURRENT_SOURCE_DIR}/comparewidget.ui
${CMAKE_CURRENT_SOURCE_DIR}/dataexport.ui
${CMAKE_CURRENT_SOURCE_DIR}/dumpdialog.ui
${CMAKE_CURRENT_SOURCE_DIR}/familywidget.ui
${CMAKE_CURRENT_SOURCE_DIR}/filterbar.ui
${CMAKE_CURRENT_SOURCE_DIR}/filtersdialog.ui
${CMAKE_CURRENT_SOURCE_DIR}/filtersdialogitem.ui
${CMAKE_CURRENT_SOURCE_DIR}/filteritem.ui
${CMAKE_CURRENT_SOURCE_DIR}/floatingwidgettoolbar.ui
${CMAKE_CURRENT_SOURCE_DIR}/fontextractordialog.ui
${CMAKE_CURRENT_SOURCE_DIR}/importedfonts.ui
${CMAKE_CURRENT_SOURCE_DIR}/importtags.ui
# ${CMAKE_CURRENT_SOURCE_DIR}/help.ui
${CMAKE_CURRENT_SOURCE_DIR}/helpbrowser.ui
${CMAKE_CURRENT_SOURCE_DIR}/layoutoptions.ui
#${CMAKE_CURRENT_SOURCE_DIR}/listsdock.ui
${CMAKE_CURRENT_SOURCE_DIR}/mainview.ui
${CMAKE_CURRENT_SOURCE_DIR}/metawidget.ui
${CMAKE_CURRENT_SOURCE_DIR}/matchraster.ui
${CMAKE_CURRENT_SOURCE_DIR}/panosedialog.ui
${CMAKE_CURRENT_SOURCE_DIR}/panosewidget.ui
${CMAKE_CURRENT_SOURCE_DIR}/playwidget.ui
${CMAKE_CURRENT_SOURCE_DIR}/prefs_panel.ui
${CMAKE_CURRENT_SOURCE_DIR}/progressbarduo.ui
${CMAKE_CURRENT_SOURCE_DIR}/repair.ui
${CMAKE_CURRENT_SOURCE_DIR}/sampletoolbar.ui
${CMAKE_CURRENT_SOURCE_DIR}/samplewidget.ui
# ${CMAKE_CURRENT_SOURCE_DIR}/tagset.ui
${CMAKE_CURRENT_SOURCE_DIR}/tagswidget.ui
${CMAKE_CURRENT_SOURCE_DIR}/textprogression.ui
${CMAKE_CURRENT_SOURCE_DIR}/tttablewidget.ui
)
QT4_WRAP_UI(fontmatrix_UIS_H 
${fontmatrix_UIS}
${PYTHONQT_SCRIPTER_UIS}
)

# extra translation files
SET(FONTMATRIX_TR_EXTRA
${CMAKE_CURRENT_SOURCE_DIR}/langs/unicode/uniblocks.cxx
)


SET(fontmatrix_RCCS
application.qrc
)
QT4_ADD_RESOURCES(fontmatrix_RCC_SRCS ${fontmatrix_RCCS})

FILE( GLOB FM_GLOB_TSS ${CMAKE_CURRENT_SOURCE_DIR}/messages/fontmatrix-*.ts )
# message(STATUS "lang files: ${FM_GLOB_TSS}")
IF ( TRANSLATOR )
	MESSAGE(STATUS "We are glad to see you handle the fontmatrix-${TRANSLATOR}.ts file, thank you very much")
	ADD_CUSTOM_TARGET(translation
			COMMAND ${QT_LUPDATE_EXECUTABLE}  ${fontmatrix_SRCS} ${fontmatrix_UIS} ${FONTMATRIX_TR_EXTRA} -ts "fontmatrix-${TRANSLATOR}.ts"
			DEPENDS ${fontmatrix_SRCS} ${fontmatrix_UIS}
			WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/messages"
			)
	SET( fontmatrix_TSS 
		${FM_GLOB_TSS} 
		"messages/fontmatrix-${TRANSLATOR}.ts" )
ELSE ( TRANSLATOR )
	SET( fontmatrix_TSS ${FM_GLOB_TSS} )
ENDIF( TRANSLATOR )





QT4_ADD_TRANSLATION ( fontmatrix_QMS ${fontmatrix_TSS} )
ADD_CUSTOM_TARGET ( translation_release ALL DEPENDS ${fontmatrix_QMS} )

# ADD_SUBDIRECTORY(messages)
ADD_SUBDIRECTORY(scripts)

include_directories(
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
${QT_INCLUDE_DIR}
${QT_QT_INCLUDE_DIR}
${FREETYPE_INCLUDE_DIRS}
${HARFBUZZ_INCLUDE_DIR}
${FONTCONFIG_INCLUDE_DIR}
${ICU_INCLUDE_DIR}
${M17N_INCLUDE_DIR}
${HYPHENATE_INCLUDE_DIR}
${PYTHON_INCLUDE_PATH}
${PYTHONQT_INCLUDE_DIRS}
${LIBPODOFO_INCLUDE_DIR}
)


IF(UNIX AND NOT APPLE)
	add_executable(fontmatrix
	${fontmatrix_SRCS}
	${SHAPERS_SRCS}
	${PYTHONQT_SCRIPTER_SRCS}
	${fontmatrix_MOC_SRCS}
	${fontmatrix_UIS_H}
	${fontmatrix_RCC_SRCS}
	${PODOFO_SRCS}
	)

	target_link_libraries(fontmatrix harfbuzz hyphenate 
	${PYTHONQT_LIB}
	${QT_LIBRARIES}
	${FREETYPE_LIBRARIES}
	${FONTCONFIG_LIBRARIES}
	${SHAPERS_LIBRARIES}
	${PYTHON_LIBRARIES}
	${LIBPODOFO_LIBRARY}
	)

	INSTALL(TARGETS fontmatrix
	RUNTIME DESTINATION ${FONTMATRIX_BIN}
	)
	INSTALL ( FILES ${fontmatrix_QMS} DESTINATION ${FONTMATRIX_QMDIR} )
ENDIF(UNIX AND NOT APPLE)

IF(APPLE)
	add_executable(fontmatrix MACOSX_BUNDLE
	${fontmatrix_SRCS}
	${SHAPERS_SRCS}
	${PYTHONQT_SCRIPTER_SRCS}
	${fontmatrix_MOC_SRCS}
	${fontmatrix_UIS_H}
	${fontmatrix_RCC_SRCS}
	${PODOFO_SRCS}
	)

	target_link_libraries(fontmatrix harfbuzz hyphenate
	${PYTHONQT_LIB}
	${QT_LIBRARIES}
	${FREETYPE_LIBRARIES}
	${SHAPERS_LIBRARIES}
	${PYTHON_LIBRARIES}
	${LIBPODOFO_LIBRARY}
	"-framework ApplicationServices"
	)

	# here we’ll poupulate the bundle in order to make it
	# self containing regarding external libs (Qt4 & Freetype)
	# and resources such as QM files.
	# NOTE: Mac users are not expected to build Fontmatrix
	# themselves, thus paths are hard coded because it works on the Mac
	# where we use to build it, period.

	# See:
	# http://doc.trolltech.com/4.4/deployment-mac.html
	# http://developer.apple.com/documentation/CoreFoundation/Conceptual/CFBundles/CFBundles.html

	SET(PROGNAME fontmatrix)

	SET(MACOSX_BUNDLE_BUNDLE_NAME "fontmatrix")
	SET(MACOSX_BUNDLE_ICON_FILE "fontmatrix.icns")
	SET(MACOSX_BUNDLE_GUI_IDENTIFIER "org.undertype.fontmatrix")
	SET(MACOSX_BUNDLE_LONG_VERSION_STRING "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
	SET(MACOSX_BUNDLE_SHORT_VERSION_STRING "${VERSION_MAJOR}.${VERSION_MINOR}")
	SET(MACOSX_BUNDLE_BUNDLE_VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
	SET(MACOSX_BUNDLE_COPYRIGHT "© Fontmatrix team - 2007, 2008")

	SET(BUNDLE_RESOURCES_DIR	"${CMAKE_CURRENT_BINARY_DIR}/${PROGNAME}.app/Contents/Resources/")
	SET(BUNDLE_LOCALES_DIR		"${CMAKE_CURRENT_BINARY_DIR}/${PROGNAME}.app/Contents/Resources/Locales/")

# bundles general resources
	ADD_CUSTOM_COMMAND( TARGET ${PROGNAME} POST_BUILD
	COMMAND mkdir ARGS -p ${BUNDLE_RESOURCES_DIR}
	COMMAND cp ARGS  "${CMAKE_SOURCE_DIR}/src/graphic-resources/fontmatrix.icns" ${BUNDLE_RESOURCES_DIR}
	COMMAND cp ARGS ${FM_TEMPLATES_FILES} ${FM_STYLE_FILES} ${FM_WELCOME_FILES} ${FM_HELP_FILES} ${BUNDLE_RESOURCES_DIR}
	)
# bundles QM files
	ADD_CUSTOM_COMMAND( TARGET translation_release POST_BUILD
        COMMAND mkdir ARGS -p ${BUNDLE_LOCALES_DIR}
        COMMAND cp ARGS ${fontmatrix_QMS} ${BUNDLE_LOCALES_DIR}
	)
# bundles libs
#	ADD_CUSTOM_COMMAND(TARGET ${PROGNAME} POST_BUILD
#	COMMAND ${CMAKE_COMMAND} ARGS -Dinput_file=${CMAKE_CURRENT_BINARY_DIR}/${PROGNAME}.app/Contents/MacOS/${PROGNAME} -P ${CMAKE_MODULE_PATH}/OwnIngestOSXBundleLibraries.cmake
#	)

INSTALL(TARGETS ${PROGNAME}
    BUNDLE DESTINATION . COMPONENT Runtime
    )

SET(APPLE_LIBS
	${PYTHONQT_LIB}
	${QT_LIBRARIES}
	${FREETYPE_LIBRARIES}
	${SHAPERS_LIBRARIES}
	${PYTHON_LIBRARIES}
	${LIBPODOFO_LIBRARY}
)
SET(APPLE_DIRS "${QT_PLUGINS_DIR}/sqldrivers")
SET(APPLE_APPS "\${CMAKE_INSTALL_PREFIX}/fontmatrix.app")
INSTALL(CODE "
    include(BundleUtilities)
    fixup_bundle(\"${APPLE_APPS}\" \"${APPLE_LIBS}\" \"${APPLE_DIRS}\")
    " COMPONENT Runtime)

ENDIF(APPLE)

IF(WIN32)
	add_executable(fontmatrix WIN32
	${fontmatrix_SRCS}
	${SHAPERS_SRCS}
	${PYTHONQT_SCRIPTER_SRCS}
	${fontmatrix_MOC_SRCS}
	${fontmatrix_UIS_H}
	${fontmatrix_RCC_SRCS}
	${PODOFO_SRCS}
	)

	target_link_libraries(fontmatrix harfbuzz hyphenate
	${PYTHONQT_LIB}
	${QT_LIBRARIES}
	${FREETYPE_LIBRARIES}
	${SHAPERS_LIBRARIES}
	${PYTHON_LIBRARIES}
	${LIBPODOFO_LIBRARY}
	)

	INSTALL(TARGETS fontmatrix
	RUNTIME DESTINATION ${FONTMATRIX_BIN}
	)
	INSTALL ( FILES ${fontmatrix_QMS} DESTINATION ${FONTMATRIX_QMDIR} )
ENDIF(WIN32)
