
SET( girl_PUBLIC_HEADERS girlToger.hpp
  girlPoint.hpp  
  girlDirection.hpp 
  girlCommon.hpp 
  girlFreemanCodePath.hpp 
  girlContour.hpp 
  girlPath.hpp 
  girlIO.hpp 
  girlEndian.hpp 
  girlSharedPtr.hpp 
  girlHashMap.hpp 
  girlHashFunc.hpp 
  girlUnorderedSet.hpp 
  girlPointHashMap.hpp
  girlBitmap.hpp 
  girlGeoDart.hpp 
  girlFlags.hpp 
  euclideanPointSet.hpp
  euclideanPathSet.hpp
  euclideanPath.hpp
  discreteTangent.hpp discreteLine.hpp
  girlBresenhamDir.hpp
  girlUtils.hpp
  girlTimer.hpp
  ${girl_CONFIG_FILE} )

SET( girl_PRIVATE_HEADERS girlTogerImpl.hpp 
  girlMap.hpp 
  girlGe2to.hpp 
  girlScanlineData.hpp  
  girlAssert.hpp 
  girlPendingEdgeFinder.hpp )

SET( girl_SOURCES girlBitmap.cpp 
  girlContour.cpp 
  girlFreemanCodePath.cpp 
  girlGe2to.cpp 
  girlMap.cpp 
  girlPath.cpp 
  girlScanlineData.cpp 
  girlToger.cpp 
  girlTogerImpl.cpp 
  euclideanPointSet.cpp
  euclideanPathSet.cpp
  euclideanPath.cpp
  discreteTangent.cpp
  discreteLine.cpp
  girlBresenhamDir.cpp)


SET( girl_SRCS ${girl_SOURCES} ${girl_PUBLIC_HEADERS} ${girl_PRIVATE_HEADERS} )




INCLUDE_DIRECTORIES(${GIRL_INCLUDE_PATH})
INCLUDE_DIRECTORIES(${GIRL_INCLUDE_DIRS})

ADD_LIBRARY( ${girl_major_minor} STATIC ${girl_SRCS} )
SET_TARGET_PROPERTIES( ${girl_major_minor} PROPERTIES DEFINE_SYMBOL "GIRL_DLL" )
SET_TARGET_PROPERTIES( ${girl_major_minor} PROPERTIES DEFINE_SYMBOL "GIRL_DLL_EXPORTS" )
IF(CMAKE_COMPILER_IS_GNUCC AND NOT APPLE)
SET_TARGET_PROPERTIES( ${girl_major_minor} PROPERTIES LINK_FLAGS "-Wl,--no-undefined" )
ENDIF(CMAKE_COMPILER_IS_GNUCC AND NOT APPLE)



# We do not install with 
# INSTALL(FILES ${girl_PUBLIC_HEADERS} DESTINATION ${includedir}/${girl_major_minor}/girl)
# but by setting PUBLIC/PRIVATE_HEADER properties of target

FOREACH(FILE ${girl_PUBLIC_HEADERS})
  SET(girl_PUBLIC_HEADER_S "${girl_PUBLIC_HEADER_S};${FILE}")
ENDFOREACH()
FOREACH(FILE ${girl_PRIVATE_HEADERS})
  SET(girl_PRIVATE_HEADER_S "${girl_PRIVATE_HEADER_S};${FILE}")
ENDFOREACH()

SET_TARGET_PROPERTIES( ${girl_major_minor} 
  PROPERTIES
  # PRIVATE_HEADER "${girl_PRIVATE_HEADER_S}"
  PUBLIC_HEADER "${girl_PUBLIC_HEADER_S}" 
  )


IF(APPLE)
  
  IF (WANT_FRAMEWORK)

    SET_TARGET_PROPERTIES( ${girl_major_minor} 
      PROPERTIES
      FRAMEWORK TRUE
      FRAMEWORK_VERSION ${girl_VERSION}
      #	PRIVATE_HEADER ${girl_PRIVATE_HEADERS}
      #	PUBLIC_HEADER ${girl_PUBLIC_HEADERS}
      MACOSX_FRAMEWORK_BUNDLE_VERSION "${girl_VERSION}" 
      MACOSX_FRAMEWORK_SHORT_VERSION_STRING "${girl_VERSION}" 
      #	MACOSX_FRAMEWORK_IDENTIFIER "girl ${MACOSX_BUNDLE_VERSION}" 
      ### Don't know what to put as identifier ??? 
      )
    
  ELSE(WANT_FRAMEWORK)

    SET_TARGET_PROPERTIES( ${girl_major_minor} 
      PROPERTIES
      FRAMEWORK FALSE
      )

  ENDIF(WANT_FRAMEWORK)

ENDIF()


INSTALL(TARGETS ${girl_major_minor}
  FRAMEWORK DESTINATION Library/Frameworks
  RUNTIME DESTINATION bin 
  LIBRARY DESTINATION lib 
  ARCHIVE DESTINATION lib
  #The following is ignored for Mac frameworks. 
  # PUBLIC_HEADER DESTINATION ${includedir}/${girl_major_minor}/girl
  PUBLIC_HEADER DESTINATION include/${girl_major_minor}/girl
  )


