CMakeLists.txt 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. #
  2. # Listing and grouping of all the source files.
  3. # 1) Set the file lists for each component
  4. # 2) Create a Source Group for each component, for IDE project orginization
  5. # 3) Add libassimp using the file lists (eliminates duplication of file names between
  6. # source groups and library command)
  7. #
  8. # Modified by Lasse Oorni and Yao Wei Tjong for Urho3D
  9. project(Assimp)
  10. set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake;${CMAKE_MODULE_PATH}")
  11. if (MINGW)
  12. # The IFCReaderGen.cpp.obj has too many sections in DEBUG configuration build
  13. # Since GCC does not support /bigobj compiler flags as in MSVC, we use optimization flags to reduce the object file size
  14. set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O1")
  15. set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O1")
  16. endif ()
  17. INCLUDE_DIRECTORIES( code )
  18. INCLUDE_DIRECTORIES( include )
  19. INCLUDE_DIRECTORIES( code/BoostWorkaround )
  20. INCLUDE_DIRECTORIES( contrib/unzip )
  21. ADD_DEFINITIONS( -DASSIMP_BUILD_BOOST_WORKAROUND -DASSIMP_BUILD_NO_C4D_IMPORTER -DASSIMP_BUILD_NO_OPENGEX_IMPORTER -DASSIMP_BUILD_NO_ASSBIN_IMPORTER)
  22. file (GLOB_RECURSE CODE_FILES code/*.cpp code/*.h)
  23. SET( IrrXML_SRCS
  24. code/irrXMLWrapper.h
  25. contrib/irrXML/CXMLReaderImpl.h
  26. contrib/irrXML/heapsort.h
  27. contrib/irrXML/irrArray.h
  28. contrib/irrXML/irrString.h
  29. contrib/irrXML/irrTypes.h
  30. contrib/irrXML/irrXML.cpp
  31. contrib/irrXML/irrXML.h
  32. )
  33. SOURCE_GROUP( IrrXML FILES ${IrrXML_SRCS})
  34. SET( ConvertUTF_SRCS
  35. contrib/ConvertUTF/ConvertUTF.h
  36. contrib/ConvertUTF/ConvertUTF.c
  37. )
  38. SOURCE_GROUP( ConvertUTF FILES ${ConvertUTF_SRCS})
  39. SET( Clipper_SRCS
  40. contrib/clipper/clipper.hpp
  41. contrib/clipper/clipper.cpp
  42. )
  43. SOURCE_GROUP( Clipper FILES ${Clipper_SRCS})
  44. SET( Poly2Tri_SRCS
  45. contrib/poly2tri/poly2tri/common/shapes.cc
  46. contrib/poly2tri/poly2tri/common/shapes.h
  47. contrib/poly2tri/poly2tri/common/utils.h
  48. contrib/poly2tri/poly2tri/sweep/advancing_front.h
  49. contrib/poly2tri/poly2tri/sweep/advancing_front.cc
  50. contrib/poly2tri/poly2tri/sweep/cdt.cc
  51. contrib/poly2tri/poly2tri/sweep/cdt.h
  52. contrib/poly2tri/poly2tri/sweep/sweep.cc
  53. contrib/poly2tri/poly2tri/sweep/sweep.h
  54. contrib/poly2tri/poly2tri/sweep/sweep_context.cc
  55. contrib/poly2tri/poly2tri/sweep/sweep_context.h
  56. )
  57. SOURCE_GROUP( Poly2Tri FILES ${Poly2Tri_SRCS})
  58. SET( unzip_SRCS
  59. contrib/unzip/crypt.h
  60. contrib/unzip/ioapi.c
  61. contrib/unzip/ioapi.h
  62. contrib/unzip/unzip.c
  63. contrib/unzip/unzip.h
  64. )
  65. SOURCE_GROUP( unzip FILES ${unzip_SRCS})
  66. SET( zlib_SRCS
  67. contrib/zlib/adler32.c
  68. contrib/zlib/compress.c
  69. contrib/zlib/crc32.c
  70. contrib/zlib/crc32.h
  71. contrib/zlib/deflate.c
  72. contrib/zlib/deflate.h
  73. # contrib/zlib/gzclose.c
  74. # contrib/zlib/gzguts.h
  75. # contrib/zlib/gzlib.c
  76. # contrib/zlib/gzread.c
  77. # contrib/zlib/gzwrite.c
  78. contrib/zlib/infback.c
  79. contrib/zlib/inffast.c
  80. contrib/zlib/inffast.h
  81. contrib/zlib/inffixed.h
  82. contrib/zlib/inflate.c
  83. contrib/zlib/inflate.h
  84. contrib/zlib/inftrees.c
  85. contrib/zlib/inftrees.h
  86. contrib/zlib/trees.c
  87. contrib/zlib/trees.h
  88. contrib/zlib/zconf.h
  89. contrib/zlib/zlib.h
  90. contrib/zlib/zutil.c
  91. contrib/zlib/zutil.h
  92. )
  93. SOURCE_GROUP( zlib FILES ${zlib_SRCS})
  94. if ( MSVC80 OR MSVC90 OR MSVC10 )
  95. ADD_DEFINITIONS( -D_SCL_SECURE_NO_WARNINGS )
  96. ADD_DEFINITIONS( -D_CRT_SECURE_NO_WARNINGS )
  97. endif ( MSVC80 OR MSVC90 OR MSVC10 )
  98. SET( SOURCE_FILES
  99. # Assimp Files
  100. ${CODE_FILES}
  101. )
  102. SET( CONTRIB_FILES
  103. # Third-party libraries
  104. ${IrrXML_SRCS}
  105. ${ConvertUTF_SRCS}
  106. ${unzip_SRCS}
  107. # ${zlib_SRCS}
  108. ${Poly2Tri_SRCS}
  109. ${Clipper_SRCS}
  110. # Necessary to show the headers in the project when using the VC++ generator:
  111. ${Boost_SRCS}
  112. )
  113. find_package(ZLIB)
  114. if (ZLIB_FOUND)
  115. include_directories(${ZLIB_INCLUDE_DIRS})
  116. else ()
  117. message(STATUS "Using contrib version of zlib.")
  118. list(APPEND CONTRIB_FILES ${zlib_SRCS})
  119. endif ()
  120. set (TARGET_NAME Assimp)
  121. list (APPEND SOURCE_FILES ${CONTRIB_FILES} ${PUBLIC_HEADERS} ${COMPILER_HEADERS})
  122. #set_source_files_properties (contrib/clipper/clipper.cpp contrib/irrXML/irrXML.cpp PROPERTIES NO_PCH TRUE)
  123. #enable_pch (code/AssimpPCH.h)
  124. add_library(Assimp ${SOURCE_FILES})
  125. target_link_libraries(Assimp zlib)