aboutsummaryrefslogtreecommitdiffstats
path: root/cmake/FindSolidity.cmake
blob: f2086b6539fbfac2539f1a73546bf2e345bc8c39 (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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# Find Solidity
#
# Find the solidity includes and library
#
# This module defines
#  Solidity_XXX_LIBRARIES, the libraries needed to use solidity.
#  SOLIDITY_INCLUDE_DIRS

include(EthUtils)
set(LIBS solidity;lll;evmasm)

set(Solidity_INCLUDE_DIRS "${SOL_DIR}")

# if the project is a subset of main cpp-ethereum project
# use same pattern for variables as Boost uses
if ((DEFINED solidity_VERSION) OR (DEFINED cpp-ethereum_VERSION))

    foreach (l ${LIBS})
        string(TOUPPER ${l} L)
        set ("Solidity_${L}_LIBRARIES" ${l})
    endforeach()

else()

    foreach (l ${LIBS})
        string(TOUPPER ${l} L)
        find_library(Solidity_${L}_LIBRARY
            NAMES ${l}
            PATHS ${CMAKE_LIBRARY_PATH}
            PATH_SUFFIXES "lib${l}" "${l}" "lib${l}/Debug" "lib${l}/Release"
            NO_DEFAULT_PATH
        )

        set(Solidity_${L}_LIBRARIES ${Solidity_${L}_LIBRARY})

        if (DEFINED MSVC)
            find_library(Solidity_${L}_LIBRARY_DEBUG
                NAMES ${l}
                PATHS ${CMAKE_LIBRARY_PATH}
                PATH_SUFFIXES "lib${l}/Debug" 
                NO_DEFAULT_PATH
            )
            eth_check_library_link(Solidity_${L})
        endif()
    endforeach()

endif()