CMakeLists.txt 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. if(WIN32)
  2. execute_process(
  3. COMMAND ${PROJECT_SOURCE_DIR}/../Dependencies/tools/flex/flex.exe --wincompat ${PROJECT_SOURCE_DIR}/BansheeSL/BsLexerFX.l
  4. COMMAND ${PROJECT_SOURCE_DIR}/../Dependencies/tools/bison/bison.exe ${PROJECT_SOURCE_DIR}/BansheeSL/BsParserFX.y
  5. WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/BansheeSL
  6. RESULT_VARIABLE rv
  7. )
  8. file(RENAME "${PROJECT_SOURCE_DIR}/BansheeSL/BsLexerFX.h" "${PROJECT_SOURCE_DIR}/BansheeSL/Include/BsLexerFX.h")
  9. file(RENAME "${PROJECT_SOURCE_DIR}/BansheeSL/BsLexerFX.c" "${PROJECT_SOURCE_DIR}/BansheeSL/Source/BsLexerFX.c")
  10. file(RENAME "${PROJECT_SOURCE_DIR}/BansheeSL/BsParserFX.h" "${PROJECT_SOURCE_DIR}/BansheeSL/Include/BsParserFX.h")
  11. file(RENAME "${PROJECT_SOURCE_DIR}/BansheeSL/BsParserFX.c" "${PROJECT_SOURCE_DIR}/BansheeSL/Source/BsParserFX.c")
  12. else()
  13. find_package(BISON REQUIRED)
  14. find_package(FLEX REQUIRED)
  15. message("Building lexer/parser...")
  16. execute_process(
  17. COMMAND ${FLEX_EXECUTABLE} ${BS_FLEX_OPTIONS} ${PROJECT_SOURCE_DIR}/BansheeSL/BsLexerFX.l
  18. COMMAND ${BISON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/BansheeSL/BsParserFX.y)
  19. execute_process(
  20. COMMAND mv BsLexerFX.h ${PROJECT_SOURCE_DIR}/BansheeSL/Include
  21. COMMAND mv BsLexerFX.c ${PROJECT_SOURCE_DIR}/BansheeSL/Source
  22. COMMAND mv BsParserFX.h ${PROJECT_SOURCE_DIR}/BansheeSL/Include
  23. COMMAND mv BsParserFX.c ${PROJECT_SOURCE_DIR}/BansheeSL/Source)
  24. endif()
  25. # Source files and their filters
  26. include(CMakeSources.cmake)
  27. # Includes
  28. set(BansheeSL_INC
  29. "Include"
  30. "../BansheeUtility/Include"
  31. "../BansheeCore/Include"
  32. "../BansheeEngine/Include")
  33. include_directories(${BansheeSL_INC})
  34. # Target
  35. add_library(BansheeSL SHARED ${BS_BANSHEESL_SRC})
  36. # Defines
  37. target_compile_definitions(BansheeSL PRIVATE -DBS_SL_EXPORTS)
  38. # Pre-build step
  39. if(WIN32)
  40. add_custom_command(TARGET BansheeSL PRE_BUILD
  41. COMMAND ${PROJECT_SOURCE_DIR}/../Dependencies/tools/flex/flex.exe --wincompat ${PROJECT_SOURCE_DIR}/BansheeSL/BsLexerFX.l
  42. COMMAND ${PROJECT_SOURCE_DIR}/../Dependencies/tools/bison/bison.exe ${PROJECT_SOURCE_DIR}/BansheeSL/BsParserFX.y
  43. COMMAND xcopy /Y /I BsLexerFX.h \"${PROJECT_SOURCE_DIR}/BansheeSL/Include\"
  44. COMMAND xcopy /Y /I BsLexerFX.c \"${PROJECT_SOURCE_DIR}/BansheeSL/Source\"
  45. COMMAND xcopy /Y /I BsParserFX.h \"${PROJECT_SOURCE_DIR}/BansheeSL/Include\"
  46. COMMAND xcopy /Y /I BsParserFX.c \"${PROJECT_SOURCE_DIR}/BansheeSL/Source\"
  47. COMMAND del BsLexerFX.h BsLexerFX.c BsParserFX.h BsParserFX.c
  48. COMMENT "Building lexer/parser...")
  49. endif()
  50. # Libraries
  51. ## Local libs
  52. target_link_libraries(BansheeSL BansheeEngine BansheeUtility BansheeCore)
  53. # IDE specific
  54. set_property(TARGET BansheeSL PROPERTY FOLDER Plugins)