# src/CMakeLists.txt - Source files for ValidShape plugin
# 
# This file defines source files for the plugin.
# The root CMakeLists.txt includes this file via add_subdirectory().
project(ValidAsset)

# Full paths to source files (relative to project root)
set(SOURCE_FILES
    ValidShape.cpp
    ValidShape.h
    LicenseChecker.cpp
    LicenseChecker.h
    EncryptCommand.cpp
    EncryptCommand.h
    pluginMain.cpp
)

# Find Maya SDK using custom FindMaya module
find_package(Maya REQUIRED)

# Include directories
include_directories(
    ${MAYA_INCLUDE_DIR}
    ${CMAKE_SOURCE_DIR}/src/
)

# Create the plugin library
add_library(ValidAsset SHARED
    ${SOURCE_FILES}
)

# Target libraries
target_link_libraries(ValidAsset
    ${MAYA_LIBRARIES}
)

# Platform-specific settings
if(WIN32)
    target_compile_definitions(ValidAsset PRIVATE
        _CRT_SECURE_NO_WARNINGS
        _USRDLL
        _WINDLL
        NT_PLUGIN
    )
    # Ignore code page 950 (Traditional Chinese) warnings for source files
    target_compile_options(ValidAsset PRIVATE "/wd4819")
    set_target_properties(ValidAsset PROPERTIES
        OUTPUT_NAME "ValidShape"
        PREFIX ""
        SUFFIX ".mll"
    )
elseif(UNIX)
    set_target_properties(ValidAsset PROPERTIES
        OUTPUT_NAME "ValidShape"
        PREFIX ""
        SUFFIX ".so"
    )
endif()


# Install rules
install(TARGETS ValidAsset
    RUNTIME DESTINATION plug-ins/${MAYA_VERSION}
    LIBRARY DESTINATION plug-ins/${MAYA_VERSION}
)

install(FILES scripts/AEValidShapeTemplate.mel
    DESTINATION scripts
)

install(DIRECTORY icons/
    DESTINATION icons
    FILES_MATCHING PATTERN "*.png" PATTERN "*.svg"
)
# Make these variables available to parent scope
set(VALIDSHAPE_SOURCES ${VALIDSHAPE_SOURCES} PARENT_SCOPE)
set(VALIDSHAPE_HEADERS ${VALIDSHAPE_HEADERS} PARENT_SCOPE)

# Group source files in IDEs
source_group("Source Files" FILES ${VALIDSHAPE_SOURCES})
source_group("Header Files" FILES ${VALIDSHAPE_HEADERS})