release 0.1.13
[liba.git] / quickjs / CMakeLists.txt
blob4a51a4690ef018eaeabe6ae8d5aebf0e20451e6b
1 if(LIBA_WITH_QUICKJS)
2   include(${CMAKE_CURRENT_LIST_DIR}/quickjs.cmake)
3   add_subdirectory(${QUICKJS_SOURCE_DIR} ${QUICKJS_BINARY_DIR})
4   set(QJS_EXECUTABLE ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:qjs>)
5 else()
6   include(../cmake/QuickJSPIC.cmake)
7 endif()
9 if(LIBA_CXX)
10   file_scaner(SOURCES RECURSE src EXT c h cc hh cpp hpp)
11 else()
12   file_scaner(SOURCES RECURSE src EXT c h)
13 endif()
15 set(CMAKE_SHARED_MODULE_PREFIX "")
16 set(CMAKE_SHARED_MODULE_SUFFIX .so)
17 add_library(aqjs MODULE $<TARGET_OBJECTS:a> ${SOURCES})
18 set_target_properties(aqjs PROPERTIES DEFINE_SYMBOL A_EXPORTS OUTPUT_NAME ${PROJECT_NAME})
19 target_include_directories(aqjs PRIVATE ${QUICKJS_INCLUDE_DIR})
20 add_library_properties(aqjs PRIVATE alib)
21 set_library_options(aqjs)
23 if(LIBA_WITH_QUICKJS OR QUICKJS_PIC)
24   if(LIBA_IPO)
25     target_link_libraries(aqjs PRIVATE quickjs.lto)
26   else()
27     target_link_libraries(aqjs PRIVATE quickjs)
28   endif()
29 endif()
31 if("${LIBA_INSTALL}" MATCHES "^$|[Qq]uick[Jj][Ss]")
32   install(TARGETS aqjs
33     ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/quickjs
34     LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/quickjs
35   )
36 endif()
38 if(EXISTS ${CMAKE_CURRENT_LIST_DIR}/test/CMakeLists.txt AND QJS_EXECUTABLE)
39   get_property(IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
41   if(NOT CMAKE_VERSION VERSION_LESS 3.0)
42     set(WORKING_DIRECTORY $<TARGET_FILE_DIR:aqjs>)
43   elseif(IS_MULTI_CONFIG)
44     set(WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>)
45   else()
46     set(WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
47   endif()
49   add_subdirectory(test)
50 endif()