CMakeLists.txt 2.0 KB

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