mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
74a38fc3d8
When using solidity as a third-party library (include it into our project using FetchContent), we encountered a strange compilation error. For some reason, cmake considers the root directory of the project as the root directory of the dependency (solidity). This is because solidity is incorrectly using CMAKE_SOURCE_DIR variable, which should be PROJECT_SOURCE_DIR (The former one refers to the top-level source directory that contains a CMakeLists.txt, while the latter refers to the source directory of the most recent project() command) I've created a repo for demonstration (https://github.com/junaire/test-solidity-fetch-content) Signed-off-by: Jun Zhang <jun@junz.org>
55 lines
960 B
CMake
55 lines
960 B
CMake
set(sources
|
|
Algorithms.h
|
|
AnsiColorized.h
|
|
Assertions.h
|
|
Common.h
|
|
CommonData.cpp
|
|
CommonData.h
|
|
CommonIO.cpp
|
|
CommonIO.h
|
|
cxx20.h
|
|
Exceptions.cpp
|
|
Exceptions.h
|
|
ErrorCodes.h
|
|
FixedHash.h
|
|
FunctionSelector.h
|
|
IndentedWriter.cpp
|
|
IndentedWriter.h
|
|
IpfsHash.cpp
|
|
IpfsHash.h
|
|
JSON.cpp
|
|
JSON.h
|
|
Keccak256.cpp
|
|
Keccak256.h
|
|
LazyInit.h
|
|
LEB128.h
|
|
Numeric.cpp
|
|
Numeric.h
|
|
picosha2.h
|
|
Result.h
|
|
SetOnce.h
|
|
StackTooDeepString.h
|
|
StringUtils.cpp
|
|
StringUtils.h
|
|
SwarmHash.cpp
|
|
SwarmHash.h
|
|
TemporaryDirectory.cpp
|
|
TemporaryDirectory.h
|
|
UTF8.cpp
|
|
UTF8.h
|
|
vector_ref.h
|
|
Views.h
|
|
Visitor.h
|
|
Whiskers.cpp
|
|
Whiskers.h
|
|
)
|
|
|
|
add_library(solutil ${sources})
|
|
target_link_libraries(solutil PUBLIC jsoncpp Boost::boost Boost::filesystem Boost::system range-v3 fmt::fmt-header-only)
|
|
target_include_directories(solutil PUBLIC "${PROJECT_SOURCE_DIR}")
|
|
add_dependencies(solutil solidity_BuildInfo.h)
|
|
|
|
if(SOLC_LINK_STATIC)
|
|
target_link_libraries(solutil PUBLIC Threads::Threads)
|
|
endif()
|