aboutsummaryrefslogtreecommitdiffstats
path: root/solc/CMakeLists.txt
blob: 656b27c34315f6a9fbbd19b16fdf62d48d87d7d5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
set(
    sources
    CommandLineInterface.cpp CommandLineInterface.h
    main.cpp
)

add_executable(solc ${sources})
target_link_libraries(solc PRIVATE solidity ${Boost_PROGRAM_OPTIONS_LIBRARIES})

include(GNUInstallDirs)
install(TARGETS solc DESTINATION "${CMAKE_INSTALL_BINDIR}")

if (EMSCRIPTEN)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s EXPORTED_FUNCTIONS='[\"_compileJSON\",\"_license\",\"_version\",\"_compileJSONMulti\",\"_compileJSONCallback\",\"_compileStandard\"]' -s RESERVED_FUNCTION_POINTERS=20")
    add_executable(soljson jsonCompiler.cpp)
else()
    add_library(soljson jsonCompiler.cpp)
endif()
target_link_libraries(soljson PRIVATE solidity)

if(SOLC_LINK_STATIC AND UNIX AND NOT APPLE)
    # Produce solc as statically linked binary (includes C/C++ standard libraries)
    # This is not supported on macOS, see
    # https://developer.apple.com/library/content/qa/qa1118/_index.html.
    set_target_properties(
        solc PROPERTIES
        LINK_FLAGS -static
        LINK_SEARCH_START_STATIC ON
        LINK_SEARCH_END_STATIC ON
    )
endif()