CMakeLists.txt 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. set(CMAKE_FAKELANG_CREATE_STATIC_LIBRARY "touch <TARGET>")
  2. if(ENABLE_PCH)
  3. # This is actually a .h file, but trick cmake into compiling it as a source file
  4. set(pch_out_filename "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/pch.dir/pch.h")
  5. if (ANDROID)
  6. set(pch_lib_filename "${LIBRARY_OUTPUT_PATH}/libpch.a")
  7. else()
  8. set(pch_lib_filename "${CMAKE_CURRENT_BINARY_DIR}/libpch.a")
  9. endif()
  10. set(pch_src_filename "${CMAKE_CURRENT_SOURCE_DIR}/PCH/pch.h")
  11. if(APPLE)
  12. set(type objective-c++-header)
  13. else()
  14. set(type c++-header)
  15. endif()
  16. set_source_files_properties(
  17. PCH/pch.h PROPERTIES
  18. COMPILE_FLAGS "-x ${type}"
  19. HEADER_FILE_ONLY 0
  20. LANGUAGE CXX)
  21. add_library(pch STATIC PCH/pch.h)
  22. add_custom_command(
  23. TARGET pch
  24. PRE_LINK
  25. COMMAND ln -fs "${pch_out_filename}.o" "${pch_out_filename}.gch"
  26. COMMAND ln -fs "${pch_out_filename}.o" "${pch_out_filename}.pch"
  27. COMMAND cp "${pch_src_filename}" "${pch_out_filename}")
  28. set_target_properties(
  29. pch PROPERTIES
  30. LINKER_LANGUAGE FAKELANG)
  31. endif(ENABLE_PCH)
  32. macro(add_dolphin_library lib srcs libs)
  33. add_library(${lib} STATIC ${srcs})
  34. target_link_libraries(${lib} ${libs})
  35. if(ENABLE_PCH)
  36. add_dependencies(${lib} pch)
  37. set_source_files_properties(
  38. ${srcs} PROPERTIES
  39. COMPILE_FLAGS "-include '${pch_out_filename}'"
  40. OBJECT_DEPENDS "${pch_lib_filename}")
  41. endif(ENABLE_PCH)
  42. endmacro(add_dolphin_library)
  43. add_subdirectory(Core)
  44. add_subdirectory(UnitTests)
  45. if (DSPTOOL)
  46. add_subdirectory(DSPTool)
  47. endif()
  48. # TODO: Add DSPSpy. Preferrably make it option() and cpack component