PROJECT(MRIConvert)

cmake_minimum_required(VERSION 2.6)


## The stuff under "else (win32)" should also work under windows, but it didn't for me.
## I didn't want to spend a lot of time getting it to work, so I just set up the win32 stuff
## manually.

IF (WIN32)

  SET(WX_PATH CACHE PATH "wxWidgets directory")

  INCLUDE_DIRECTORIES(${WX_PATH}/include
                      ${WX_PATH}/lib/vc_lib/msw )

  LINK_DIRECTORIES( ${WX_PATH}/lib/vc_lib)

ELSE(WIN32)

##  IF(NOT APPLE)
##	SET(CMAKE_FIND_LIBRARY_SUFFIXES .a)
##	SET(CMAKE_EXE_LINKER_FLAGS -static)
##  endif(NOT APPLE)

  SET(WXW_USE_DEBUG OFF)
  SET(WXW_USE_UNICODE ON)
  SET(WXW_USE_SHARED ON)
  SET(WXW_USE_UNIV OFF)
  SET(WXW_USE_MONO OFF)
  SET(WXW_FILE_VERSION "28")
  SET(WXW_VERSION "2.8")

  SET(CMAKE_VERBOSE_MAKEFILE TRUE)

  SET(EXECUTABLE_OUTPUT_PATH "release")
  
  INCLUDE (FindwxWidgets)
  
  SET(CMAKE_CXX_FLAGS " -DWX_PRECOMP ${CMAKE_CXX_FLAGS}${wxWidgets_CXX_FLAGS}")

  ADD_DEFINITIONS( ${wxWidgets_DEFINITIONS} ${PROJECT_DEFINITIONS} )

  INCLUDE_DIRECTORIES(${wxWidgets_INCLUDE_DIRS})
  LINK_DIRECTORIES( ${wxWidgets_LIBRARY_DIRS} )
  
ENDIF(WIN32)


IF( OS_X )
   message( "OS X build" )
   SET( MACOSX_BUNDLE_INFO_STRING "MRIConvert - version 2.0" )
   SET( MACOSX_BUNDLE_BUNDLE_VERSION "2.0" )
   # Change following line to point to actual icns file in bundle.
   SET( MACOSX_BUNDLE_ICON_FILE "MRIConvert.icns" )
   SET( MACOSX_BUNDLE_GUI_IDENTIFIER "edu.uoregon.lcni.MRIConvert" )
   SET( MACOSX_BUNDLE_BUNDLE_NAME "MRIConvert" )

   EXEC_PROGRAM( "cp macosx/MRIConvert.icns macosx/MRIConvert.app/Contents/Resources")

   # Overload the Info.plist default
   SET( CMAKE_MODULE_PATH macosx ${CMAKE_MODULE_PATH} )
ENDIF( OS_X )

ADD_EXECUTABLE(MRIConvert WIN32 MACOSX_BUNDLE
	AnalyzeOutputter.cpp
	AnalyzeVolume.cpp
	Basic3DOutputter.cpp
	BasicVolumeFormat.cpp
	BvFiles.cpp
	Converter.cpp
	DicomFile.cpp
	DicomTree.cpp
	DicomViewer.cpp
	Dictionary.cpp
	FslNiftiOutputter.cpp
	HandlerFactory.cpp
	ImageView.cpp
	InfoFrame.cpp
	MRIConvert.cpp
	McFrame.cpp
	McPanel.cpp
	MessageList.cpp
	NewBvOutputter.cpp
	NewMetaOutputter.cpp
	NewMetaVolume.cpp
	NewSpmOutputter.cpp
	NewSpmVolume.cpp
	NiftiOutputter.cpp
	NiftiVolume.cpp
	OutputFactory.cpp
	OutputList.cpp
	OutputTreeNew.cpp
	OutputterBase.cpp
	OverwriteDlg.cpp
	OptionsDialogs.cpp
	SeriesHandler.cpp
	StringConvert.cpp
	TextFileViewer.cpp
	Volume.cpp
	jcsTree.cpp

	AnalyzeOutputter.h
	AnalyzeVolume.h
	Basic3DOutputter.h
	BasicVolumeFormat.h
	BvFiles.h
	ByteSwap.h
	Converter.h
	DicomFile.h
	DicomTree.h
	DicomViewer.h
	Dictionary.h
	FslNiftiOutputter.h
	HandlerFactory.h
	ImageView.h
	InfoFrame.h
	MRIConvert.h
	McFrame.h
	McPanel.h
	MessageList.h
	NewBvOutputter.h
	NewMetaOutputter.h
	NewMetaVolume.h
	NewSpmOutputter.h
	NewSpmVolume.h
	NiftiOutputter.h
	NiftiVolume.h
	OptionsDialogs.h
	OutputFactory.h
	OutputList.h
	OutputTreeNew.h
	OutputterBase.h
	OverwriteDlg.h
	ReadStream.h
	SeriesHandler.h
	StringConvert.h
	TextFileViewer.h
	Volume.h
	jcsTree.h
	nifti1.h
	metaTypes.h
	resource.h
	fileformats.h
	version_string.h

	DicomFile.txx
	SeriesHandler.txx
	NewBvOutputter.txx
	Basic3DOutputter.txx

	MRIConvert.ico
)

ADD_EXECUTABLE(mcverter
	McVerter.cpp
	AnalyzeOutputter.cpp
	AnalyzeVolume.cpp
	Basic3DOutputter.cpp
	BasicVolumeFormat.cpp
	BvFiles.cpp
	Converter.cpp
	DicomFile.cpp
	Dictionary.cpp
	FslNiftiOutputter.cpp
	HandlerFactory.cpp
	NewBvOutputter.cpp
	NewMetaOutputter.cpp
	NewMetaVolume.cpp
	NewSpmOutputter.cpp
	NewSpmVolume.cpp
	NiftiOutputter.cpp
	NiftiVolume.cpp
	OutputFactory.cpp
	OutputList.cpp
	OutputterBase.cpp
	SeriesHandler.cpp
	StringConvert.cpp
	Volume.cpp

	McVerter.h
	AnalyzeOutputter.h
	AnalyzeVolume.h
	Basic3DOutputter.h
	BasicVolumeFormat.h
	BvFiles.h
	ByteSwap.h
	Converter.h
	DicomFile.h
	Dictionary.h
	FslNiftiOutputter.h
	HandlerFactory.h
	NewBvOutputter.h
	NewMetaOutputter.h
	NewMetaVolume.h
	NewSpmOutputter.h
	NewSpmVolume.h
	NiftiOutputter.h
	NiftiVolume.h
	OutputFactory.h
	OutputterBase.h
	ReadStream.h
	SeriesHandler.h
	StringConvert.h
	Volume.h
	nifti1.h
	metaTypes.h
	resource.h
	fileformats.h
	version_string.h

	DicomFile.txx
	SeriesHandler.txx
	NewBvOutputter.txx
	Basic3DOutputter.txx
)


IF (WIN32)

  TARGET_LINK_LIBRARIES( MRIConvert

	optimized wxbase28u
	optimized wxmsw28u_core
	optimized wxjpeg
	optimized wxpng
	optimized wxtiff
	optimized wxzlib
	debug     wxbase28ud
	debug     wxmsw28ud_core
	debug     wxjpegd
	debug     wxtiffd
	debug     wxpngd
	debug     wxzlibd
	          comctl32
	          rpcrt4
 )

  TARGET_LINK_LIBRARIES( mcverter

	optimized wxbase28u
	optimized wxmsw28u_core
	debug     wxbase28ud
	debug     wxmsw28ud_core
	          comctl32
		  rpcrt4
  )

ELSE(WIN32)

  TARGET_LINK_LIBRARIES(MRIConvert ${wxWidgets_LIBRARIES})
  TARGET_LINK_LIBRARIES(mcverter ${wxWidgets_LIBRARIES})

ENDIF(WIN32)

