CMakeLists.txt 3.18 KB
Newer Older
Mccaskey, Alex's avatar
Mccaskey, Alex committed
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
#***********************************************************************************
# Copyright (c) 2016, UT-Battelle
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#   * Redistributions of source code must retain the above copyright
#     notice, this list of conditions and the following disclaimer.
#   * Redistributions in binary form must reproduce the above copyright
#     notice, this list of conditions and the following disclaimer in the
#     documentation and/or other materials provided with the distribution.
#   * Neither the name of the xacc nor the
#     names of its contributors may be used to endorse or promote products
#     derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# Contributors:
#   Initial API and implementation - Alex McCaskey
#
#**********************************************************************************/

32
find_package(OpenSSL)
Mccaskey, Alex's avatar
Mccaskey, Alex committed
33

34
if (OPENSSL_FOUND)
Mccaskey, Alex's avatar
Mccaskey, Alex committed
35

36
37
38
   set (PACKAGE_NAME "Rigetti XACC Accelerator")
   set (PACKAGE_DESCIPTION "Rigetti XACC Accelerator Framework")
   set (LIBRARY_NAME xacc-rigetti-accelerator)
Mccaskey, Alex's avatar
Mccaskey, Alex committed
39

40
41
   file (GLOB_RECURSE HEADERS *.hpp)
   file (GLOB SRC *.cpp)
Mccaskey, Alex's avatar
Mccaskey, Alex committed
42

43
44
45
46
   # Set up dependencies to resources to track changes
   usFunctionGetResourceSource(TARGET ${LIBRARY_NAME} OUT SRC)
   # Generate bundle initialization code
   usFunctionGenerateBundleInit(TARGET ${LIBRARY_NAME} OUT SRC)
Mccaskey, Alex's avatar
Mccaskey, Alex committed
47

48
   add_library(${LIBRARY_NAME} SHARED ${SRC})
Mccaskey, Alex's avatar
Mccaskey, Alex committed
49

50
51
52
53
54
55
56
57
   set(_bundle_name xacc_rigetti_accelerator) 

   set_target_properties(${LIBRARY_NAME} PROPERTIES
     # This is required for every bundle
     COMPILE_DEFINITIONS US_BUNDLE_NAME=${_bundle_name}
     # This is for convenience, used by other CMake functions
     US_BUNDLE_NAME ${_bundle_name}
     )
Mccaskey, Alex's avatar
Mccaskey, Alex committed
58

59
60
61
62
63
64
   if(BUILD_SHARED_LIBS)
     set_target_properties(${LIBRARY_NAME} PROPERTIES
       CXX_VISIBILITY_PRESET hidden
       VISIBILITY_INLINES_HIDDEN 1
       )
   endif()
Mccaskey, Alex's avatar
Mccaskey, Alex committed
65

66
67
68
69
70
71
72
   # Embed meta-data from a manifest.json file
   usFunctionEmbedResources(TARGET ${LIBRARY_NAME}
     WORKING_DIRECTORY
       ${CMAKE_CURRENT_SOURCE_DIR}
     FILES
       manifest.json
     )
Mccaskey, Alex's avatar
Mccaskey, Alex committed
73

74
   target_link_libraries(${LIBRARY_NAME} ${Boost_LIBRARIES} ${OPENSSL_LIBRARIES} CppMicroServices xacc-quantum-gate)
Mccaskey, Alex's avatar
Mccaskey, Alex committed
75

76
77
78
79
   install(TARGETS ${LIBRARY_NAME} DESTINATION lib/plugins/accelerators)
else()
   message(STATUS "OpenSSL not found, cannot include Rigetti Accelerator plugin.")
endif()