mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
40cfcd40d7
The Module::Object rule is something only eth_use() and friends can understand. target_link_libraries() on the other hand needs only the actual library object to link to.
28 lines
795 B
CMake
28 lines
795 B
CMake
aux_source_directory(. SRC_LIST)
|
|
list(REMOVE_ITEM SRC_LIST "./jsonCompiler.cpp")
|
|
|
|
include_directories(BEFORE ..)
|
|
|
|
set(EXECUTABLE solc)
|
|
|
|
file(GLOB HEADERS "*.h")
|
|
add_executable(${EXECUTABLE} ${SRC_LIST} ${HEADERS})
|
|
|
|
eth_use(${EXECUTABLE} REQUIRED Solidity::solidity)
|
|
target_link_libraries(${EXECUTABLE} ${Boost_PROGRAM_OPTIONS_LIBRARIES})
|
|
|
|
if (APPLE)
|
|
install(TARGETS ${EXECUTABLE} DESTINATION bin)
|
|
else()
|
|
eth_install_executable(${EXECUTABLE})
|
|
endif()
|
|
|
|
if (EMSCRIPTEN)
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s EXPORTED_FUNCTIONS='[\"_compileJSON\",\"_version\",\"_compileJSONMulti\"]'")
|
|
add_executable(soljson jsonCompiler.cpp ${HEADERS})
|
|
eth_use(soljson REQUIRED Solidity::solidity)
|
|
else()
|
|
add_library(soljson jsonCompiler.cpp ${HEADERS})
|
|
target_link_libraries(soljson solidity)
|
|
endif()
|